依赖注入和使用 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 的更好方法吗?