ValidationLocalizationOptions.LocalizerProvider Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit le délégué qui contrôle qui IStringLocalizer est utilisé pour un type déclarant donné. Le type déclarant est le type qui contient la propriété en cours de validation, ou null lorsque le pipeline de validation n’a pas de type déclarant pour attribuer le message (par exemple, les paramètres d’API minimale de niveau supérieur).
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)
Valeur de propriété
Remarques
Quand null (valeur par défaut), Create(Type) est appelé avec le type déclarant, qui suit la convention d’affectation de noms de fichier de ressources standard (par exemple, Resources/Models.Customer.fr.resx pour le type Models.Customer). Pour déclarer des appels sans type, le secours sans fournisseur utilise typeof(object). Dans ce cas, la source de ressource résolue est rarement utile, c’est pourquoi la configuration de ce délégué (ou l’utilisation AddValidationLocalization<TResource>()) est recommandée pour la validation minimale des paramètres d’API.
options.LocalizerProvider = (type, factory) =>
factory.Create(typeof(SharedValidationMessages));
Pour le modèle de ressource partagée ci-dessus, préférez la surcharge dédiée AddValidationLocalization<TResource>() , qui vous est configurée LocalizerProvider (avec une optimisation à instance unique qui ignore la résolution de nouveau IStringLocalizer sur chaque appel de validation).
Le délégué doit retourner une valeur non null IStringLocalizer. Le retour null entraîne la levée d’une InvalidOperationException validation lors de la prochaine tentative de localisation d’un message pour ce type déclarant.
Mise en cache : le pipeline de validation ne met pas en cache le IStringLocalizer délégué retourné. Le délégué est appelé une fois par appel et ResolveDisplayName(DisplayNameLocalizationContext)ResolveErrorMessage(ErrorMessageLocalizationContext), par conséquent, le sous-jacent IStringLocalizerFactory est responsable de la mise en cache des instances de localiseur si la création d’instance est coûteuse. Toutefois, la fabrique par défaut inscrite par AddLocalization() (ResourceManagerStringLocalizerFactory) met en cache ses résultats en interne. Si votre délégué lui-même effectue un travail significatif au-delà de l’appel de l’usine, capturez le résultat d’une fermeture pour amortir ce coût entre les appels.