C# 与另一个接口组合的opengeneric
我正在使用autofac作为容器,希望注册一个开放的泛型和另一个接口,但无法让它工作C# 与另一个接口组合的opengeneric,c#,autofac,C#,Autofac,我正在使用autofac作为容器,希望注册一个开放的泛型和另一个接口,但无法让它工作 公共类OpenWindowHandler:IHandle、IStartable、IDisposable,其中TViewModel:Screen 我使用以下方式注册: var genericOpenWindowType=typeof(IHandle)。MakeGenericType(typeof(OpenWindow)); builder.RegisterGeneric(typeof(OpenWindowHan
公共类OpenWindowHandler:IHandle、IStartable、IDisposable,其中TViewModel:Screen
我使用以下方式注册:
var genericOpenWindowType=typeof(IHandle)。MakeGenericType(typeof(OpenWindow));
builder.RegisterGeneric(typeof(OpenWindowHandler))
.As(genericOpenWindowType)
.As()
.SingleInstance();
我得到的错误是
'服务'Autofac.IStartable'不是开放的泛型类型定义。'
这是正确的,因为它不是一个开放的泛型。那么,如何注册所有的OpenWindowHandler
变体,以便为所有变体调用IStartable
IStartable接口是必需的,这样他们就可以注册自己来接收消息。这样考虑:如果有人请求一个
IStartable
实例,他们应该得到什么具体类型?Autofac应该返回无限多个可能的OpenWindowHandler
单例中的哪一个?这是真的,因为它是一个开放泛型,实际类型未知。嗯,我想我必须用另一种方法来解决它。谢谢。我对Autofac不太了解,但很天真的是像builder.Register(c=>c.Resolve()).As()
?