sti*_*mms 64 c# dependency-injection inversion-of-control autofac
从应用程序中的类中获取Autofac容器的建议方法是什么?Autofac是否提供解析类上的IContainer属性,还是我需要在构建容器后全局存储容器?
Nic*_*rdt 104
您需要IComponentContext
或ILifetimeScope
用于大多数目的.这些是由Autofac自动提供的,因此您需要做的就是对其中一个进行(构造函数)依赖,并注入当前实例.
两个接口都提供标准Resolve()
操作,同时通过添加启动新嵌套生存期的方法进行ILifetimeScope
扩展IComponentContext
.
想要使用容器服务访问其他组件的组件需要在自己的范围内而不是"全局" IContainer
中这样做,以便可以返回正确的实例.例如,在HTTP请求中,注入IComponentContext
或ILifetimeScope
将是当前请求的注入.
大多数需要注入上下文的问题也可以(通常更优雅地)使用关系类型来克服 - 请参阅:http://autofac.readthedocs.org/en/latest/resolve/relationships.html.
归档时间: |
|
查看次数: |
29513 次 |
最近记录: |