NSBゲートウェイのデモプロジェクトをセットアップしましたが、すべて正常に機能します。(SiteAはSiteBにメッセージを送信し、SiteBは確認に応答します。ie.Bus.Reply())
次に、.DefaultBuilder()の代わりに.CatleWindsorBuilder()を使用しました。ほとんど機能していて、カスタムタイプを注入しました。ただし、SiteBでBus.Reply()を実行すると例外がスローされます。
Bus.Reply<CustomerOrderReceived>(m => { m.BranchOffice = "US"; m.Description = message.Description; });
例外は次のとおりです。「メッセージタイプのハンドラーが見つかりませんでした:CustomerOrderReceived」SiteAが見つからなかったようです。OrderReceivedMessageHandler : 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のCastleWindsorIOCの実用的なサンプルを持っているかどうか疑問に思っていますか?私はグーグルで役に立つものを見つけることができませんでした。