-1

Codeplex の Simple Service Bus を使用しており、メッセージと IMessageContext を提供するハンドラーがあります。

public void Handle(MyEnquiryMessage message, IMessageContext context)

これらの両方をリストに保存し、ハンドラーを完了させます。将来のある時点で、いくつかの処理を行い、保存したコンテキストを取得して呼び出して返信を送信しようとします。

 context.Endpoint.MessageBus.Reply(myResponse)

残念ながら、これは「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外をスローします。この非同期の返信方法は可能ですか、それとも「返信」はハンドラー内でのみ使用できますか?

4

1 に答える 1

0

Simple Service Bus についてはわかりませんが、コンテキストはハンドラーでのみ有効であると思います。応答を送り返したい場合は、コンテキストから必要なすべてのデータを収集し、後の段階で単に「送信」を行う必要があります。

それでも、関連するメッセージ タイプを処理する別のエンドポイントでおそらく処理される可能性があるときに、「後で」処理を実行するのは少し奇妙に思えます。これ以上の情報がないと判断は困難ですが、設計が最適ではない可能性があります。

補足として:質問が「NServiceBus」に関するものではないため、反対票が投じられた可能性があると思います:) ---おそらく「esb」でタグ付けしてください。

于 2013-04-17T05:06:10.167 に答える