2010-03-18 3 views
3

내가 실제로 뭘 NServiceBusNServiceBus를 사용하여 메시지를 구독하면 어떻게됩니까?

Bus.Subscribe<MyMessage>() 

를 사용하여 메시지의 특정 유형의 수신자로 가입하면? 받는 사람 유형의 특정 메서드가 메시지 수신시 호출되도록 지정 했습니까? 그렇다면 메소드가 정적 컨텍스트에서 또는 새로 작성된 상위 클래스 인스턴스의 컨텍스트 내에서 실행되는 컨텍스트 내에서 실행됩니다 (그렇다면 NServiceBus는 사용할 생성자를 어떻게 알 수 있습니까).

답변

8

메시지가 말하는 게시자로 전송됩니다 "안녕하세요, 제 이름은 '큐 @ 가입자 기계'내가 'MyMessage'이벤트를 구독하고 싶습니다 -. 당신이 그들을 게시 할 때 그래서 나에게 이러한 메시지를 보내" 게시자는이 정보를 저장합니다. 게시자가 MyMessage 이벤트를 게시하면 구독자의 입력 대기열에 입력됩니다. 구독자 쪽에서는 메시지가 다른 모든 것과 같이 처리됩니다. IHandleMessage를 구현하는 모든 클래스 <T> T가 메시지와 다형성으로 호환되는 적절한 순서로 호출됩니다.

+0

"정적 컨텍스트에서"질문의 일부로 대답하지 않습니다. IoC 컨테이너가 정적 핸들러 객체를 사용해야합니까? – JarrettV

+1

모든 메시지가 기본적으로 스레드로부터 안전하도록 클래스의 새 인스턴스를 만듭니다. –

관련 문제