ResourceProviderFactory - 使用Castle.Windsor注入IResourceProvider

时间:2013-02-12 09:15:02

标签: dependency-injection inversion-of-control castle-windsor

依赖注入和使用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);
        }
    }

我正在阅读关于Typed Factories的Windsor文档 -

  

在任何需要从中提取内容的地方使用类型化工厂   容器

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

0 个答案:

没有答案