当接口位于2个抽象基类后面时,Castle Windsor无法ResolveAll
本文关键字:Castle Windsor ResolveAll 无法 接口 2个 基类 抽象 | 更新日期: 2023-09-27 18:28:52
我稍微改变了应用程序的架构,IWindsorContainer不再能够ResolveAll。
这是一个行之有效的旧架构:
public abstract class ServiceBase : IService {}
public class TrainFileService : ServiceBase {}
这是ResolveAll没有解析FileProcessorScheduledService的新架构:
public abstract class ServiceBase : IService {}
public abstract class FileServiceBase : ServiceBase {}
public class TrainFileService : FileServiceBase {}
所以,我介绍了另一个抽象类。。。。
用于ResolveAll的旧方法和新方法的代码是:
IService[] _services = Program.IocContainer.ResolveAll<IService>();
用于为新旧方式注册TrainFileService的代码是:
<castle>
<components>
<component id="TrainFileService"
lifestyle="singleton"
service="Blah.Service.Services.IService, Blah.Service"
type="Blah.Service.Services.TrainFileService , Blah.Service">
</component>
感谢
正如Chris在评论中提到的,我更改体系结构的方式实际上没有错。
问题出在其他地方。也就是说,我没有在构造函数上注册布尔值。。。