如何在Web应用程序中注册消息变更器

时间:2013-10-02 13:29:51

标签: ninject nservicebus nservicebus4

我正在将NServiceBus 4.0.3与Ninject构建器一起使用,并且无法弄清楚如何注册消息变更器(IMutateTransportMessages)。

我已经使用Ninject Kernel注册了mutator,但它从未被调用过。以下是我配置NServiceBus的方法:

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());
}

1 个答案:

答案 0 :(得分:2)

是否有一些特殊的理由直接向Ninject注册mutator而不是常规的NServiceBus容器API:

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

我的意思是,这只是内部调用已配置的容器,在您的情况下将是Ninject。