2013-10-02 6 views
1

Ninject 빌더와 함께 NServiceBus 4.0.3을 사용 중이며 메시지 변형 자 (IMutateTransportMessages)를 등록하는 방법을 알 수 없습니다.웹 응용 프로그램에 메시지 변경자를 등록하는 방법

Ninject 커널에 뮤 테이터를 등록했지만 호출되지 않습니다.

private static IBus ConfigureBus(IKernel kernel) 
{ 
    kernel.Bind<IMutateTransportMessages>().To<SendTenantIdMutator>(); 

    return NServiceBus.Configure.With() 
     .NinjectBuilder(kernel) 
     .XmlSerializer() 
     .MsmqTransport() 
      .IsTransactional(false) 
      .PurgeOnStartup(true) 
     .UnicastBus() 
      .LoadMessageHandlers() 
     .CreateBus() 
     .Start(() => Configure.Instance.ForInstallationOn<Windows>().Install()); 
} 
+0

일반적인 NServiceBus 컨테이너 API와 달리 Ninject에 직접 뮤 테이터를 등록해야하는 특별한 이유가 있습니다. Configure.Instance.Configurer.ConfigureComponent (DependencyLifecycle.SingleInstance); –

+0

사용중인 NSB의 버전을 알려주시겠습니까? 컨테이너를 방해하는 최신 릴리스의 내부 변경 사항이 있습니다. 이것은 나에게 괜찮은 대답을 제공하는 데 도움이됩니다. –

+0

@UdiDahan은 여전히 ​​내부적으로 Ninject를 사용하는 컨테이너 API를 수행합니까? –

답변

2

일반 NServiceBus 컨테이너 API에 반대 Ninject에 직접 뮤 테이터를 등록하는 특별한 이유가 : 아래는 내가 구성하고있어 얼마나 NServiceBus입니다

Configure.Component<SendTenantIdMutator>(Dependency‌​Lifecycle.SingleInstance);

나는이 의미 귀하의 경우 Ninject 될 구성된 컨테이너에 내부적으로 전화.

+0

또는'Configure.ConfigureComponent (Dependency Lifecycle.SingleInstance); ' –

+0

오른쪽 - 우리가 만든 더 짧은 폼을 잊어 버렸습니다. Chris에게 감사드립니다. –

관련 문제