我稍微修改了应用程序的体系结构,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>
由于
答案 0 :(得分:0)
正如克里斯在评论中提到的那样,我改变架构的方式确实没有错。
问题出在其他地方。也就是说,我没有在构造函数上注册布尔值......