를 업데이트 할 수 있습니다 방법 :성 윈저 : 내가 설정에 정의 된 경우 I는 구성 요소 등록을
container.Register(
Component.For<X.Y.Z.IActivityService>()
.ImplementedBy<X.Y.Z.ActivityService>()
.ServiceOverrides(ServiceOverride.ForKey("Listeners").Eq(new [] { typeof(X.Y.Z.DefaultActivityListener).FullName }))
.LifeStyle.Transient
);
나는이 구성을 확장하고 청취자의 배열 속성에 새 항목을 추가 할 최종 구성이되도록 효과 :
container.Register(
Component.For<X.Y.Z.IActivityService>()
.ImplementedBy<X.Y.Z.ActivityService>()
.ServiceOverrides(ServiceOverride.ForKey("Listeners").Eq(new [] { typeof(X.Y.Z.DefaultActivityListener).FullName, "MyOtherListenerID" }))
.LifeStyle.Transient
);
는 나는 "배열"첫 번째 구성 요소를 등록하는 내용을 알고 있어야합니다, 아니면 구성 요소 등록을 검색 할 수 있으며 추가?
내 컨테이너를 만들 수있는 데코레이터 패턴을 사용하여 내 구성을 구현 한 다음 필요에 따라 다른 시나리오에 맞게 확장하려고합니다. 즉, 이미 구성된 구성 요소에 액세스하여 추가 할 수 있어야합니다.
기본 설정을 반환하는 DefaultConfig
클래스를 가지고 있다고 생각했는데 기본 설정을 확장하는 "DecoratedConfig
"클래스 중 하나 이상을 반환합니다.
그래서 (예에서와 같이)를 DefaultActivityListener
와 ActivityService
을 설정합니다
IWindsorContaner c = new DecoratedConfig(new DefaultConfig()).InitialiseContainer();
DefaultConfig
있을 것입니다.
DecoratedConfig
은 ActivityService
이 작성되었음을 인식하고 배열에 ActivityService
에 자체 리스너 구현을 추가합니다.
감사합니다.
CompoentModel 수정이 최선의 방법입니다. 아래의 시험 방법을 참조하십시오. – crowleym