트릭은 MVC의 DependencyResolver.Current
으로 인프라 구성 요소 호출을 구현하므로 사용자가 선호하는 DI 컨테이너를 사용하여 실제 ResourceProviderFactory
을 등록 할 수 있습니다. 다음과 같이
public class MvcResourceProviderFactory : ResourceProviderFactory
{
public override IResourceProvider CreateGlobalResourceProvider(
string classKey)
{
return GetFactory().CreateGlobalResourceProvider(classKey);
}
public override IResourceProvider CreateLocalResourceProvider(
string virtualPath)
{
return GetFactory().CreateLocalResourceProvider(virtualPath);
}
private static ResourceProviderFactory GetFactory()
{
var resolver = DependencyResolver.Current;
var factory = resolver.GetService<ResourceProviderFactory>();
if (factory != null)
{
return factory;
}
throw new InvalidOperationException(string.Format(
"No {0} has been registered in the {1}.",
typeof(ResourceProviderFactory).FullName,
DependencyResolver.Current.GetType().FullName));
}
}
이 클래스는 구성 할 수 있습니다 :이 질문에 대한 답으로
<globalization
resourceProviderFactoryType="MyApp.MvcResourceProviderFactory, MyApp"
enableClientBasedCulture="true" uiCulture="auto" culture="auto"
/>
난 당신이에 대한 정확한 답을 준 다음
은 트릭을 할 것 같은 클래스입니다. 나는 내가 찾고있는 것을 구현하는이 방법을 알고 있었지만, 나는 현재 사용중인 위의 것을 사용하는 것 대신에 의존성 주입을 처리하는 다른 방법이 있다면 더 관심이 있었다. – Trotts
나는 잠시 동안 이걸로 고투하고 있으며, 내가 찾은 최선의 접근법은 좋든 나쁘 든 ... – retslig