IValidationAttributeFormatter Interfaccia

Definizione

Formatta un modello di messaggio di errore di convalida con argomenti specifici dell'attributo. Usato dalla pipeline di localizzazione della convalida per produrre messaggi di errore completamente formattati da modelli localizzati che contengono segnaposto posizionale oltre {0} (il nome visualizzato).

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

Commenti

Per aggiungere il supporto della formattazione per un attributo di convalida personalizzato, sono disponibili due opzioni:

  1. Implementare IValidationAttributeFormatter direttamente sull'attributo stesso. ValidationAttributeFormatterRegistry verifica la presenza di questo primo attributo e usa automaticamente l'attributo come formattatore.
  2. Creare un'implementazione separata IValidationAttributeFormatter e registrarla tramite AttributeFormatters chiamando AddFormatter<TAttribute>(Func<TAttribute,IValidationAttributeFormatter>).
L'esempio seguente illustra come registrare un formattatore per un attributo personalizzato:
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)));

Metodi

Nome Descrizione
FormatErrorMessage(CultureInfo, String, String)

Formatta l'oggetto specificato messageTemplate sostituendo gli argomenti specifici dell'attributo insieme a displayName.

Si applica a