2011-08-05 32 views
0

オブジェクト型のプロパティを含むオブジェクトのXmlFormatterを使用してMSMQにメッセージを送信しようとしています。オブジェクトのプロパティがnullのままになると、シリアライズ/デシリアライゼーションは完全に機能します。しかし、オブジェクトを割り当てると、.sendを呼び出すときに例外が発生します。私が受け取る唯一の情報は、XML文書を生成する際のエラーです。どちらのクラスも直列化可能とマークされています。私は何か他に何かする必要がありますか?MSMQ複合オブジェクトのシリアル化/逆シリアル化

ありがとうございました。

+0

どういう例外がありますか? –

答えて

0

オブジェクトがXMLに正しくシリアル化されていない可能性があります。

オブジェクトプロパティに文字列値を代入するだけでどのように動作しますか?

小さなコンソールアプリケーションまたはデバッガを使用して、クラスがxmlとの間でシリアル化およびシリアル化解除される方法をテストし、XmlFormatterの動作を確認できます。

+0

キューが式外にある場合は、問題なくシリアル化/逆シリアル化できます。だから、何がうまくいかないのか分かりません。関係するすべてのクラスは直列化可能です。 XmlFormatterの動作を確認するにはどうすればよいですか?私は、NetDataContractSerializerユーティリティクラスを使用しています。これは、オブジェクトが正しく構造化されていることを確認するためにシリアル化および逆シリアル化する必要があります。 – chad

+0

同じエラーでMessageQueue.Formatter.Writeが失敗します。明らかに、これはMessageQueue.Sendがフードの下で実行していることで、これは驚きではありません。 – chad

0

複合クラスがプロパティを型オブジェクトとして宣言しても、何かが割り当てられていると、直列化によってそのプロパティが割り当てられた型のオブジェクトとして認識されます。

たとえば、オブジェクトプロパティに新しいCustomClass()の値を割り当てると、シリアル化でオブジェクト()が必要ですが、CustomClass()が見つかるため、シリアル化が失敗します。

オブジェクトプロパティにnew object()の値を割り当てると、シリアル化が機能すると思われます。

関連する問題