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