0
我試圖註冊的通用類,如下所示:在Autofac中,是否可以爲非通用接口註冊泛型?
builder.RegisterGeneric(typeof(WindowContext<>))
.AsSelf()
.As<IWindowContext>()
.InstancePerLifetimeScope();
(WindowContext<T> : IWindowContext
)
上述登記導致上構建一個ArgumentException
:服務「Inforbase.Presentation.IWindowContext」不是打開泛型類型定義。
預期的行爲是最接近組合根的WindowContext<T>
的依賴關係將定義在該生存期範圍內的任何IWindowContext
已解析的實例。
我意識到這個概念有點奇怪,並且在同一生命週期範圍內的兩個類請求不同類型的WindowContext<T>
具有奇怪的邊緣情況。在我的情況下,錯誤或覆蓋都可以接受。
Autofac可能嗎?
我仍然想知道爲什麼這是不可能的,開放泛型可能被用作另一個類實例中的非泛型依賴項,而不僅僅是組合根。 – nietras