我已经设置了一个 NSB 网关演示项目,一切正常。(SiteA 向 SiteB 发送 msg,SiteB 回复确认。ie.Bus.Reply())
然后我继续使用 .CatleWindsorBuilder() 而不是 .DefaultBuilder()。大部分工作,注入了我的自定义类型。但是,当 SiteB 的 Bus.Reply() 时抛出异常。
Bus.Reply<CustomerOrderReceived>(m => { m.BranchOffice = "US"; m.Description = message.Description; });
例外是:“找不到消息类型的处理程序:CustomerOrderReceived”听起来好像找不到 SiteAOrderReceivedMessageHandler : IHandleMessages<CustomerOrderReceived>
这是 SiteA 的 EndpointConfig
_container = new WindsorContainer();
Configure.With()
.CastleWindsorBuilder(_container)
.XmlSerializer()
.MsmqTransport().IsTransactional(true)
.FileShareDataBus(".\\databus").UnicastBus().ImpersonateSender(false).LoadMessageHandlers();
_container.Register(Component.For<IOrderTask>().ImplementedBy<OrderTask>());
_container.Register(Component.For<IWindsorContainer>().Instance(_container));
_container.Install(FromAssembly.InThisApplication());
但是 SiteA 中的消息处理程序都可以正常工作。
想知道是否有人在 NSB 有温莎城堡 IOC 的工作样本?我只是在谷歌上找不到任何有用的东西。