2009-08-31 1 views
2

ActiveMQメッセージングにApache NMSを使用する予定です。送信するオブジェクトにどのようなシリアル化方法を使用するのか疑問に思っていますか? XML /バイナリ?シリアライゼーションを制御するものは何ですか?どのようにシリアライズをカスタマイズできますか?ActiveMQ NMS C#オブジェクトメッセージにはどのようなシリアル化方法が使用されていますか?

誰もC#オブジェクトでこれをやっている経験はありますか?あなたが知っている落とし穴がありますか?

答えて

4

デフォルトは、IObjectMessageのSystem.Runtime.Serialization.Formatters.Binary.BinaryFormatterです。

たとえば、

IObjectMessage m = session.CreateObjectMessage(); 

((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter 

あなたがデフォルトにBinaryFormatterを持つオブジェクトを送信していない場合、受信側でIObjectMessage.Bodyにアクセスする前にフォーマッタを設定する必要があると思います。

希望する場合は、IByteMessage/ITextMessageを送受信することもできます。また、メッセージを自分の好みに合わせてシリアル化することもできます。

+0

バイナリ形式の下位互換性に関する良い情報はありますか?削除/追加されたフィールドはどうなりますか? – TheSoftwareJedi

+0

実際に(私の限られた経験atleat)不足しているfiledsはデフォルト値を得るように見えます。このシリアル化は、NMS/ActiveMQとは関係ありません。 stackoverflowのシリアライゼーションに関する多くの質問があります。 – nos

関連する問題