IValidationAttributeFormatter Interface

Definição

Formata um modelo de mensagem de erro de validação com argumentos específicos de atributo. Usado pelo pipeline de localização de validação para produzir mensagens de erro totalmente formatadas de modelos localizados que contêm espaços reservados posicionais além {0} (o nome de exibição).

public interface class IValidationAttributeFormatter
public interface IValidationAttributeFormatter
type IValidationAttributeFormatter = interface
Public Interface IValidationAttributeFormatter

Comentários

Para adicionar suporte à formatação para um atributo de validação personalizado, você tem duas opções:

  1. Implemente IValidationAttributeFormatter diretamente no próprio atributo. ValidationAttributeFormatterRegistry verifica isso primeiro e usa o atributo como seu próprio formatador automaticamente.
  2. Crie uma implementação separada IValidationAttributeFormatter e registre-a por meio AttributeFormatters da chamada AddFormatter<TAttribute>(Func<TAttribute,IValidationAttributeFormatter>).
O exemplo a seguir mostra como registrar um formatador para um atributo personalizado:
public class MyAttributeFormatter(MyAttribute attribute) : IValidationAttributeFormatter
{
    public string FormatErrorMessage(CultureInfo culture, string messageTemplate, string displayName)
        => string.Format(culture, messageTemplate, displayName, attribute.CustomProperty);
}

// Register it in Program.cs:
builder.Services.AddValidationLocalization(options =>
    options.AttributeFormatters.AddFormatter<MyAttribute>(
        attribute => new MyAttributeFormatter(attribute)));

Métodos

Nome Description
FormatErrorMessage(CultureInfo, String, String)

Formata o especificado messageTemplate substituindo argumentos específicos do atributo ao lado do displayName.

Aplica-se a