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 {}
을, 나는 또 다른 추상 클래스를 도입했습니다 ....
이전 및 새로운 방법으로 해결하기 위해 사용 된 코드는 다음과 같습니다.
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'를 등록합니까? –
마지막 코드는 TrainFileService (IService [] _services = Program.IocContainer.ResolveAll();)를 등록하는 데 사용됩니다. 이것은 오래된 방법을 사용했지만 새로운 방법은 사용하지 않았습니다. –
어떻게 해결할 것인가? (용기에서 꺼내십시오 *). 등록 방법이 아닙니다 (컨테이너에 * 넣으십시오). –