Generics Castle Windsor未解析逆变通用接口(再次)
因为我不能评论这个问题的答案 所以我再问一遍,我的设置和上面的问题完全一样 这将返回True:Generics Castle Windsor未解析逆变通用接口(再次),generics,castle-windsor,Generics,Castle Windsor,因为我不能评论这个问题的答案 所以我再问一遍,我的设置和上面的问题完全一样 这将返回True: var res = typeof(IBaseInterface<Details1, string>).IsAssignableFrom(typeof(Impl2)); 我用的是Castle 3.1 btw 经过一番调查,我可以看出这本书有一处错误 DefaultNamingSubSystem.GetHandlersNoLock(Type service) 或 因为我的实现注册为封闭接口
var res = typeof(IBaseInterface<Details1, string>).IsAssignableFrom(typeof(Impl2));
我用的是Castle 3.1 btw
经过一番调查,我可以看出这本书有一处错误
DefaultNamingSubSystem.GetHandlersNoLock(Type service)
或
因为我的实现注册为封闭接口IBaseInterface,但是Supports()方法检查
ComponentModel.Services.Contains(service); // here service = IBaseInterface<,>
ComponentModel.Services.Contains(服务);//here service=IBaseInterface
显然Castle在我的组件服务中找不到开放的通用服务
No component for supporting the service Test.IBaseInterface`2[[Test.Details1, Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] was found
DefaultNamingSubSystem.GetHandlersNoLock(Type service)
AbstractHandler.Supports(Type service)
ComponentModel.Services.Contains(service); // here service = IBaseInterface<,>