我正在将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());
}
答案 0 :(得分:2)
是否有一些特殊的理由直接向Ninject注册mutator而不是常规的NServiceBus容器API:
Configure.Component<SendTenantIdMutator>(DependencyLifecycle.SingleInstance);
我的意思是,这只是内部调用已配置的容器,在您的情况下将是Ninject。