私は、電子メールメッセージの処理にMassTransitを使用してきました。このコードを使用する:http://meandaspnet.blogspot.com/2009/10/how-to-binary-serialize-mailmessage-for.html私は自分の電子メールをバイナリシリアル化してサービスバスに公開することができます。それらも正しく処理されます。しかしないAangifteOmzetbelastingのための - 奇妙なことは、私はSerializableMailMessageを公開する場合、これが動作することであるMassTransitバイナリのシリアル化されたメッセージが正しく処理されない
// Check out the sequence of the Consumes<> !
public class MessageHandler :
Consumes<SerializeableMailMessage>.All,
Consumes<AangifteOmzetbelasting>.All
{
public void Consume(AangifteOmzetbelasting message)
{
// Some code - method will NOT be called
}
public void Consume(SerializeableMailMessage mailMessage)
{
// Some code - this method is called by Mass Transit
}
}
:
Bus.Initialize(
sbc =>
{
sbc.EnableMessageTracing();
sbc.ReceiveFrom("msmq://localhost/MyQueue");
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseMulticastSubscriptionClient();
sbc.UseBinarySerializer();
sbc.Subscribe(subs => subs.Instance(new MessageHandler()));
});
は今、私は新しいタイプとハンドラを追加しました。インタフェースの順序を変更すると、AangifteOmzetBarastingでは有効であり、SerializableMailMessageでは機能しません。同様に:
// Check out the sequence of the Consumes<> !
public class MessageHandler :
Consumes<AangifteOmzetbelasting>.All,
Consumes<SerializeableMailMessage>.All
後者の場合、SerializedMailMessgesはサービスバスにも表示されません。どちらも次の方法で公開されています:
Bus.Instance.Publish(object)
私はここで間違っていますか?
お返事ありがとうございます - 私はPublish <>を使用して公開しようとしましたが、コメントに応じて廃止されました。タイプ情報を提供する公開方法を変更できないのですか? –
シリアライズされたメッセージ用とXMLメッセージ用の2つのバスを使用して解決しました。 –