ValidationLocalizationOptions.LocalizerProvider Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta il delegato utilizzato IStringLocalizer per un determinato tipo dichiarante. Il tipo dichiarante è il tipo che contiene la proprietà da convalidare o null quando la pipeline di convalida non ha alcun tipo dichiarante per attribuire il messaggio a (ad esempio, parametri API minimi di primo livello).
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)
Valore della proprietà
Commenti
Quando null (impostazione predefinita), Create(Type) viene chiamato con il tipo dichiarante, che segue la convenzione di denominazione dei file di risorse standard (ad esempio, Resources/Models.Customer.fr.resx per il tipo Models.Customer). Per le chiamate senza tipo dichiarante, il fallback no-provider usa typeof(object). In tal caso l'origine risorse risolta è raramente utile, motivo per cui è consigliabile configurare questo delegato (o usando AddValidationLocalization<TResource>()) per la convalida minima dei parametri API.
options.LocalizerProvider = (type, factory) =>
factory.Create(typeof(SharedValidationMessages));
Per il modello di risorsa condivisa precedente, preferire l'overload dedicato AddValidationLocalization<TResource>() , che viene configurato LocalizerProvider automaticamente (con un'ottimizzazione a istanza singola che ignora la risoluzione dello stesso in IStringLocalizer ogni chiamata di convalida).
Il delegato deve restituire un valore diverso da Null IStringLocalizer. La restituzione null fa sì che venga generata un'eccezione InvalidOperationException la volta successiva che la convalida tenta di localizzare un messaggio per il tipo dichiarante.
Memorizzazione nella cache: la pipeline di convalida non memorizza nella cache l'oggetto IStringLocalizer restituito da questo delegato. Il delegato viene richiamato una volta per ogni chiamata a ResolveDisplayName(DisplayNameLocalizationContext) e ResolveErrorMessage(ErrorMessageLocalizationContext), quindi l'oggetto sottostante IStringLocalizerFactory è responsabile della memorizzazione nella cache delle istanze localizer se la creazione dell'istanza è costosa. Tuttavia, la factory predefinita registrata da AddLocalization() (ResourceManagerStringLocalizerFactory) memorizza i risultati nella cache internamente. Se il delegato stesso esegue operazioni significative oltre a chiamare la factory, acquisire il risultato in una chiusura per ammortizzare tale costo tra le chiamate.