2012-04-29 4 views
0

내 바인딩과 관련하여 약간 이상한 상황이 있습니다.Ninject 문맥 바인딩 마법

몇 가지 이벤트 소스와이를 구독하려는 클래스가 있습니다. 소스의 인스턴스가 다르지만 (모두 동일한 클래스 임) 구독자의 유형이 다른 클래스간에 변경 될 수 있습니다.

내가 ISubscribeTo<T> 어떤 유형을 갖고 싶어
public interface ISubscribeTo<T> where T : ISubscribable 
{ 
    void Subscribe(T eventSource); 
} 

public interface ISubscribable {} 

정품 인증에까지 전달 된 ISubscribable의 인스턴스를 가지고 :

내 접근 방식은 지금까지이 같은 것입니다.

ActivationStrategy을 사용하여 이러한 작업을 연결하면 매우 간단합니다.

제가 가지고있는 합병증은 활성화하려는 클래스에 따라 ISubscribeTo<T>이 달라진다는 것입니다.

ActivationStrategy에는 커널의 GetAll 메서드가 호출되어 있지만 요청에 대해 이미 활성화 된 인스턴스 만 얻고 싶습니다.

나는 이것을 어떻게 달성 할 수있는 제안이 있습니까?

답변

1

이벤트 중개인을 살펴보십시오. 그들은 자신의 메커니즘을 추가하지 않고도 다른 구성 요소의 이벤트를 매우 쉽게 구독 할 수 있습니다. the tutorial

https://github.com/ninject/ninject.extensions.bbveventbroker