如何访问 ASP.NET MVC3 控制器中的 autofac 容器?
我想在 MVC 控制器中使用命名参数来解决依赖关系。如果我可以访问 Autofac 容器,我应该能够这样做:
var service = Container.Resolve<IService>(
new NamedParameter("fileExtension", dupExt)
);
我不知道如何访问 AutoFac 容器。是否有我可以使用的容器的全局引用,或者是否有其他方法可以使用命名参数?
I would like to resolve a dependency using a named parameter in an MVC controller. If I can access the Autofac container I should be able to do it like so:
var service = Container.Resolve<IService>(
new NamedParameter("fileExtension", dupExt)
);
I can't find out how to access the AutoFac container. Is there a global reference to the container that I can use or is there another way to use named parameters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我刚刚发现我可以使用 IComponentContext 来做同样的事情。您可以将 IComponentContext 的实例注入到控制器中。
我在这个问题中找到了一些关于全局访问容器的好建议:
Web 应用程序中的 Autofac,其中我应该存储容器以便于访问吗?
我还找到了如何在此处全局访问依赖项解析器:全局访问 ASP.NET MVC3 中的 autofac 依赖解析器?
I've just discovered I can use IComponentContext for the same thing. You can inject an instance of IComponentContext into the controller.
I've found some good advice on getting global access to the container in this question:
Autofac in web applications, where should I store the container for easy access?
I've also found how to get access to the dependency resolver globally here: Global access to autofac dependency resolver in ASP.NET MVC3?