0

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の実用的なサンプルを持っているかどうか疑問に思っていますか?私はグーグルで役に立つものを見つけることができませんでした。

4

1 に答える 1

0

ソートされました!StructureMapBuilder()を使用して

ただし、ゲートウェイシナリオでBus.Reply()を処理する場合は、NSBのバグだと思います。

于 2012-12-13T02:32:22.700 に答える