1
我稍微改變了我們應用程序的體系結構,而IWindsorContainer不再能夠ResolveAll。Castle Windsor無法ResolveAll當接口位於2抽象基類後面
這是老架構,沒有工作:
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>
感謝
如何註冊'TrainFileService'? – 2012-03-22 14:41:22
最後一段代碼用於註冊TrainFileService(IService [] _services = Program.IocContainer.ResolveAll();)。這工作使用舊的方式,但不是新的方式。 –
2012-03-22 14:48:16
你如何解決它(讓它*容器*)*。不是你如何註冊它(把它*放入容器中)。 – 2012-03-22 14:48:58