MQMessage をシリアル化し、ディスク/データベースに保存したいと考えています。私の目標は、すべてのヘッダー、名前付きプロパティ、およびコンテンツをそのままにして、後でシリアル化解除できるようにすることです。
明確にするために、次のようなものが必要です。
byte[] serialize(MQMessage m);
MQMessage deserialize(byte[] b);
次のことを行うとき:
MQMessage M = deserialize(serialize(m));
私が得るのは、それM
がの「クローン」ですm
。
これは、必要に応じて処理のためにメッセージを再送信できるようにするために必要です (大規模な MQ ネットワークでは、アプリケーションは遅かれ早かれいくつかのメッセージを食べたり失ったりします)。そのため、再送信する各 MQMessage の 1:1 コピーをデシリアライズできる必要があります (つまり、その内容だけでなく、そのヘッダー、プロパティ、エンコード、フォーマットなども含めて)。
残念ながら、MQMessage はどのようなシリアライゼーション メカニズムも実装していないようです。これをどのように行うつもりですか?シリアライゼーション/デシリアライゼーション コードを手作りすることが唯一の方法ですか?