从应用程序的类内部获取 Autofac 容器的建议方法是什么? Autofac 是否提供解析类上的 IContainer 属性,或者在构建容器后是否需要全局存储该容器?
你需要IComponentContext
or ILifetimeScope
对于大多数目的。这些是由 Autofac 自动提供的,因此您所需要做的就是对其中之一进行(构造函数)依赖,然后将注入当前实例。
两种接口均提供标准Resolve()
操作,同时ILifetimeScope
延伸IComponentContext
通过添加开始新的嵌套生命周期的方法。
想要使用容器的服务来访问其他组件的组件需要在自己的范围内进行,而不是“全局”IContainer
,以便可以返回正确的实例。例如。在 HTTP 请求中,注入IComponentContext
or ILifetimeScope
将是当前请求的一个。
大多数需要注入上下文的问题也可以(通常更优雅地)使用关系类型来克服 - 请参阅:http://autofac.readthedocs.org/en/latest/resolve/relationships.html http://autofac.readthedocs.org/en/latest/resolve/relationships.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)