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 次 |
| 最近记录: |