ValidationLocalizationOptions.LocalizerProvider Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger ombudet som styr vilken som IStringLocalizer används för en viss deklareringstyp. Deklareringstypen är den typ som innehåller egenskapen som verifieras, eller null när valideringspipelinen inte har någon deklareringstyp att tillskriva meddelandet till (t.ex. minimala API-parametrar på den översta nivån).
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)
Egenskapsvärde
Kommentarer
När null (standardvärdet) Create(Type) anropas med deklareringstypen, som följer standardkonventionen för namngivning av resursfiler (t.ex. Resources/Models.Customer.fr.resx för typ Models.Customer). För deklarering av typlösa anrop använder typeof(object)återställningen utan provider . I så fall är den lösta resurskällan sällan användbar, varför du bör konfigurera det här ombudet (eller använda AddValidationLocalization<TResource>()) för minimal API-parameterverifiering.
options.LocalizerProvider = (type, factory) =>
factory.Create(typeof(SharedValidationMessages));
För mönstret för delad resurs ovan föredrar du den dedikerade AddValidationLocalization<TResource>() överlagringen som konfigureras LocalizerProvider åt dig (med en optimering med en enda instans som hoppar över att lösa samma på nytt IStringLocalizer vid varje valideringsanrop).
Ombudet måste returnera en icke-null IStringLocalizer. Om du returnerar null genereras ett InvalidOperationException nästa gång verifieringen försöker lokalisera ett meddelande för den deklarerande typen.
Cachelagring: valideringspipelinen cachelagras inte som IStringLocalizer returneras av det här ombudet. Ombudet anropas en gång per anrop till ResolveDisplayName(DisplayNameLocalizationContext) och ResolveErrorMessage(ErrorMessageLocalizationContext), så den underliggande IStringLocalizerFactory är ansvarig för cachelagring av localizer-instanser om det är dyrt att skapa instanser. Standardfabriken som registrerats av AddLocalization() (ResourceManagerStringLocalizerFactory) cachelagrar dock sina resultat internt. Om ombudet själv utför meningsfullt arbete utöver att anropa fabriken samlar du in resultatet i en stängning för att amortera kostnaden mellan anrop.