프로그래밍 방식 및 XML을 통해 종속성을 구성하려고합니다. 유형이 IMyService
인 서비스 목록이 있습니다. 내가 프로그래밍 방식으로 컨테이너 빌더 각 서비스에 등록 :Autofac XML 구성에 일반 목록 서비스를 등록 할 수 있습니까?
ContainerBuilder builder = new ContainerBuilder();
builder.Register(t => new Logger()).As<ILogger>();
builder.Register(t => new MyService1(t.Resolve<ILogger>()));
builder.Register(t => new MyService2(t.Resolve<ILogger>()));
builder.Register(t => new MyService3(t.Resolve<ILogger>()));
builder.Register(t => new MyService4(t.Resolve<ILogger>()));
builder.Register(t => new MyService5(t.Resolve<ILogger>()));
내가 지금하고 싶은 무엇을, 나는 이들 사이에만 필요한 서비스를 주입 할 수 있도록 XML을 통해 이러한 서비스의 동적 목록을 등록하는 것입니다 내 엔진 (필수 서비스는 전개 환경에 따라 변경 될 수 있음).
나는대로 프로그래밍 방식으로이 작업을 수행 할 수 있습니다
코드를 재 컴파일 플러스 배포마다 필요한 서비스 변경을 방지하기 위해, 내가 Autofac의 XML 구성을 통해이 작업을 수행하려고하지만builder.Register(t => new List<IMyService> {
t.Resolve<MyService1>(),
t.Resolve<MyService2>(),
t.Resolve<MyService3>() })
.Named<IList<IMyService>>("ListOfMyServices");
? 이것을 할 수있는 방법이 있습니까? XML을 구성 할 필요가 없습니다
내 엔진 레지스트리는 이것이다 :
builder.Register(t => new MyEngine(t.ResolveNamed<IList<IMyService>>("ListOfMyServices")));
그래,이 방법으로 할 수 있고 나는 그것을 생각 해냈다. 그러나 실제로 Autofac XML 구성을 통해 수행 할 수 있는지 알고 싶었습니다. 당신이 대답 할 수 없다는 것을 지적하면서 이것을 대답으로 표시하십시오. –