我对Simple Injector IOC容器还不熟悉。我将开始在一个项目中工作,该项目需要一个使用MVC4WebAPI的多租户MVC实现。
我的问题是: Simple injector支持MVC4 ASP.NET Web吗?阅读简单的注入器文档,如this,会提到MVC3,我想知道MVC4是否也受支持。
发布于 2013-05-14 02:41:22
简短的答案是:是的,它是有效的。下面是在我的项目中使用Web和MVC4控制器的代码片段(部分基于上面Steven的响应):
var container = new Container();
//Register you types in container here
container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
container.RegisterMvcAttributeFilterProvider();
var controllerTypes =
from type in Assembly.GetExecutingAssembly().GetExportedTypes()
where typeof(ApiController).IsAssignableFrom(type)
where !type.IsAbstract
where !type.IsGenericTypeDefinition
where type.Name.EndsWith("Controller", StringComparison.Ordinal)
select type;
foreach (var controllerType in controllerTypes)
{
container.Register(controllerType);
}
container.Verify();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
要访问API控制器中的类型,可以使用以下代码片段:
DependencyResolver.Current.GetService<InterfaceName>()
https://stackoverflow.com/questions/11254292
复制相似问题