0

依赖注入和使用 IoC 的新手,但在我最新的 ASP.NET MVC 3 项目中,我们使用了 Castle.Windsor。

我们正在实现一个自定义 ResourceProviderFactory 并希望注入 IResourceProvider 及其依赖项。所以我们通过 global.asax 中的 IContainerAccessor 暴露容器并显式解析:

    public class DynamicResourceProviderFactory : ResourceProviderFactory
    {
        protected virtual IResourceProvider GetResourceProvider(string resourceName)
        {
            IContainerAccessor accessor = HttpContext.Current.ApplicationInstance as IContainerAccessor;            
            return accessor.Container.Resolve<IResourceProvider>(new Arguments(new { resourceName = resourceName }));
        }

        public override IResourceProvider CreateGlobalResourceProvider(string resourceName)
        {
            return GetResourceProvider(resourceName);
        }
    }

我正在阅读有关类型工厂的温莎文档-

在需要从容器中拉取东西的地方使用类型化工厂。

类型化工厂是从容器中获取 IResourceProvider 的更好方法吗?

4

0 回答 0