ValidationLocalizationOptions.LocalizerProvider 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 선언 형식에 사용되는 대리자를 IStringLocalizer 가져오거나 설정합니다. 선언 형식은 유효성을 검사하는 속성이 포함된 형식이거나 null 유효성 검사 파이프라인에 메시지의 특성을 지정하는 선언 형식이 없는 경우(예: 최상위 최소 API 매개 변수)입니다.
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)
속성 값
설명
표준 null 리소스 파일 명명 규칙(예: Create(Type) 형식)을 따르는 선언 형식Resources/Models.Customer.fr.resx으로 호출되는 경우(기본값) Models.Customer 형식이 없는 호출을 선언하는 경우 공급자 없음 대체(fallback)가 사용됩니다 typeof(object). 이 경우 확인된 리소스 원본은 거의 유용하지 않습니다. 따라서 최소 API 매개 변수 유효성 검사에 이 대리자(또는 사용 AddValidationLocalization<TResource>())를 구성하는 것이 좋습니다.
options.LocalizerProvider = (type, factory) =>
factory.Create(typeof(SharedValidationMessages));
위의 공유 리소스 패턴의 경우 자동으로 구성되는 전용 AddValidationLocalization<TResource>() 오버로드를 선호합니다 LocalizerProvider (모든 유효성 검사 호출에서 동일한 IStringLocalizer 해결을 건너뛰는 단일 인스턴스 최적화 사용).
대리자는 null IStringLocalizer이 아닌 값을 반환해야 합니다.
null 반환하면 InvalidOperationException 다음에 유효성 검사가 해당 선언 형식에 대한 메시지를 지역화하려고 할 때 throw됩니다.
캐싱: 유효성 검사 파이프라인은 이 대리자가 반환한 캐시를 IStringLocalizer 캐시하지 않습니다. 대리자는 호출 ResolveDisplayName(DisplayNameLocalizationContext)ResolveErrorMessage(ErrorMessageLocalizationContext)당 한 번 호출되므로 인스턴스 생성 비용이 많이 드는 경우 기본 IStringLocalizerFactory 이 지역화기 인스턴스를 캐싱합니다. 그러나 (AddLocalization())에 의해 ResourceManagerStringLocalizerFactory 등록된 기본 팩터리는 내부적으로 결과를 캐시합니다. 대리인 자체가 팩터리를 호출하는 것 외에 의미 있는 작업을 수행하는 경우 종료 결과를 캡처하여 호출 간에 비용을 상각합니다.