1
我有一个应用程序,其中共享对象需要对每个请求对象的引用。Autofac:从SingleInstance的类型引用到HttpRequestScoped
Shared: Engine | Per Req: IExtensions() | Request
如果我尝试将IExtensions
直接注入的Engine
构造,即使Lazy(Of IExtension)
,我得到一个“没有匹配的范围[要求]是其中要求实例的范围是可见的。”当它试图实例化每个IExtension
时例外。
如何创建一个HttpRequestScoped实例,然后将其注入共享实例?
将它设置在Request
的工厂(因此将Engine
注入RequestFactory
)会被认为是一种很好的做法吗?
非常感谢您的解决方案。 我花了一点时间找出在VB中我需要在Register()调用中自己构造一个函数,但现在它工作:D Autofac注册的lambda是:Function(c)New Func(Of IExtensions)(函数()RequestContainer.Resolve(的IExtensions)()) – wagi 2010-04-08 21:44:18
啊,很酷。很高兴能帮上忙! – 2010-04-09 06:33:24