1
형식을 지정하는 것뿐만 아니라 구성 요소에 IComponentActivator 인스턴스를 사용하려면 어떻게해야합니까? 대신에 나는 할 수 있도록하려면IComponentActivator 인스턴스
Component.For<XYZ>.Activator<MyComponentActivator>();
이다
는 또한
Component.For<XYZ>.Activator(new MyComponentActivator(someImportantRuntimeInfo));
말, '비 특별히 등록 된 구성 요소에 대한 동적 활성화를 선택할 수있는 방법은 무엇입니까? 즉, 해결할 유형을 확인하고 활성화할 수 있는지 여부를 결정하는 액티베이터를 원합니다. 그렇지 않은 경우 활성화에 대한 책임을 기본 활성화 자에게 전달해야합니다.
Create(Type type){
if (ShouldActivate(type)){
DoActivate(type);
}
else{
// do default activation here somehow
}
}
감사 :
그래서 기본적으로 나는 다음과 같은 논리가 글로벌 IComponentActivator를 원한다!
특히, 사용자 지정 WCF 채널 활성화자를 만들고 있습니다. 나는 WCF 설비가 요구하는대로 모든 WCF 서비스를 등록하고 싶지 않다. 오히려 나는 자신의 커스텀 액티베이터를 다음과 같이하고 싶다 : 1. 유형 (인터페이스)이 해결하려고하면 ServiceContract Attribute를 가지고 있는지 확인한다. 2. app.config 또는 ServiceReferences.ClientConfig에 일치하는 계약 이름 (속성)이있는 servicemodel 섹션에 나열된 클라이언트 끝점이 있는지 확인합니다. 3. 발견되면 ChannelFactory을 사용하여 인스턴스화합니다. 4. 발견되지 않으면, 정기적으로 인스턴스화하십시오. 감사! –
Jeff
필요하다면'ILazyComponentLoader'를 사용하십시오 –
Brilliant!그게 완벽하게 작동합니다, 고마워요. – Jeff