1

最近、バイナリ シリアライザーを使用して NServiceBus でメッセージを送信するようになりました。私のメッセージはすべてインターフェイスとして定義され、使用してインスタンス化されます

bus.Send<MessageType>(msg => msg.Property = someValue)

これにより、NServiceBus からスローされる例外が発生します。

インターフェイスのインスタンスを作成できません

スタック トレースから、SimpleMessageMapper が使用されていることがわかります。ソースを調べると、Activator.CreateInstance を呼び出していることがわかります。

私がやろうとしていることを実行することは不可能であると述べているドキュメントが見つかりません。これを修正する方法はありますか?

ありがとう、マット

4

1 に答える 1

0

私はnServiceBusを使い始めたばかりなので、提供できるのは理論だけです:)。

メッセージインターフェイスの実装クラスを定義していますか、それともnServiceBusが独自にクラスを生成していますか?前者の場合は、デフォルトのコンストラクターがまだあり、クラスとすべてのフィールド/イベントが[Serializable]または[NonSerialized]としてマークされていることを確認してください。後者の場合、nServiceBusが(逆)シリアル化に必要なメンバーを生成する方法を知らない可能性があります。実装クラスを自分で作成してマップする必要がある場合があります。

于 2010-08-10T16:29:50.083 に答える