ValidationLocalizationOptions.LocalizerProvider Eigenschap

Definitie

Hiermee haalt u de gemachtigde op die bepaalt welke IStringLocalizer wordt gebruikt voor een bepaald declareringstype. Het declaratietype is het type dat de eigenschap bevat die wordt gevalideerd, of null wanneer de validatiepijplijn geen declaratietype heeft om het bericht toe te schrijven aan (bijvoorbeeld minimale API-parameters op het hoogste niveau).

public:
 property Func<Type ^, Microsoft::Extensions::Localization::IStringLocalizerFactory ^, Microsoft::Extensions::Localization::IStringLocalizer ^> ^ LocalizerProvider { Func<Type ^, Microsoft::Extensions::Localization::IStringLocalizerFactory ^, Microsoft::Extensions::Localization::IStringLocalizer ^> ^ get(); void set(Func<Type ^, Microsoft::Extensions::Localization::IStringLocalizerFactory ^, Microsoft::Extensions::Localization::IStringLocalizer ^> ^ value); };
public Func<Type?,Microsoft.Extensions.Localization.IStringLocalizerFactory,Microsoft.Extensions.Localization.IStringLocalizer>? LocalizerProvider { get; set; }
member this.LocalizerProvider : Func<Type, Microsoft.Extensions.Localization.IStringLocalizerFactory, Microsoft.Extensions.Localization.IStringLocalizer> with get, set
Public Property LocalizerProvider As Func(Of Type, IStringLocalizerFactory, IStringLocalizer)

Waarde van eigenschap

Opmerkingen

Wanneer null (de standaardinstelling) Create(Type) wordt aangeroepen met het declaratietype, dat de standaardconventie voor naamgeving van bronbestanden volgt (bijvoorbeeld Resources/Models.Customer.fr.resx voor het type Models.Customer). Voor het declareren van aanroepen zonder type, gebruikt typeof(object)de no-provider fallback. In dat geval is de opgeloste resourcebron zelden nuttig. Daarom wordt het configureren van deze gemachtigde (of het gebruik AddValidationLocalization<TResource>()ervan) aanbevolen voor validatie van minimale API-parameters.

options.LocalizerProvider = (type, factory) =>
    factory.Create(typeof(SharedValidationMessages));

Voor het bovenstaande patroon voor gedeelde resources geeft u de voorkeur aan de toegewezen AddValidationLocalization<TResource>() overbelasting, die voor u configureert LocalizerProvider (met een optimalisatie met één exemplaar waarmee het opnieuw oplossen van hetzelfde IStringLocalizer wordt overgeslagen voor elke validatieoproep).

De gemachtigde moet een niet-null-waarde IStringLocalizerretourneren. Als null u een bericht retourneert, wordt InvalidOperationException de volgende keer dat de validatie probeert een bericht voor dat declaratietype te lokaliseren.

Caching: de validatiepijplijn slaat de geretourneerde door deze gemachtigde niet in de IStringLocalizer cache op. De gemachtigde wordt eenmaal per aanroep aangeroepen ResolveDisplayName(DisplayNameLocalizationContext) en ResolveErrorMessage(ErrorMessageLocalizationContext), dus de onderliggende IStringLocalizerFactory instantie is verantwoordelijk voor het opslaan van localizer-exemplaren in de cache als het maken van exemplaren duur is. De standaardfactory die is geregistreerd door AddLocalization() (ResourceManagerStringLocalizerFactory) slaat de resultaten echter intern in de cache op. Als uw gemachtigde zelf zinvolle werkzaamheden levert dan het aanroepen van de fabriek, legt u het resultaat vast in een sluiting om die kosten over gesprekken af te schrijven.

Van toepassing op