我正在尝试注册一个通用类,如下所示:
builder.RegisterGeneric(typeof(WindowContext<>))
.AsSelf()
.As<IWindowContext>()
.InstancePerLifetimeScope();
( WindowContext<T> : IWindowContext
)
上述注册导致ArgumentException
构建:服务“Inforbase.Presentation.IWindowContext”不是开放的泛型类型定义。
WindowContext<T>
预期的行为是对最接近组合根的依赖项将定义IWindowContext
为该生命周期范围内的任何实例解析的实例。
我意识到这个概念有点奇怪,并且有一个奇怪的边缘情况,即同一生命周期范围内的两个类请求不同类型的WindowContext<T>
. 在我的场景中,错误或覆盖都是可以接受的。
Autofac可以做到这一点吗?