0

XmlMessageFormatter シリアライザーと共に MSMQ を使用しています。

mq.Formatter = new XmlMessageFormatter(new Type[] { typeof(TransportEnvelop), typeof(System.Version) } ); msg = new TransportEnvelop(新しいバージョン(0, 1, 0, 1), DateTime.Now); mq.Send(メッセージ);

生成されたメッセージをコンソールに書き出すと、設定されたバージョンがすぐそこにあります。

キューからメッセージを読み返すと、System.Verion の値は [Console.WriteLine を介して] "0.0" になります。

管理ツールでキューを調べると、次のように表示されます。

<Version/>

System.Version クラスを独自の Version クラスに置き換えると、すべてが期待どおりになります。

誰かがおそらくアイデアを持っていますか、私が間違っていることは何ですか???

とにかくありがとう、よろしくお願いします。

++マブラ

4

1 に答える 1

0

これは重複しているようです: System.Version はシリアル化されていません

バージョンを WCF 呼び出しの属性として送信するときに同様の問題が発生していますが、現在は機能しておらず、以前は問題ありませんでした。VS2010からVS2012へのアップグレードに関係していると思います。ただし、ローカルでは問題なく機能しますが、サーバー上では機能しません。そのため、システム構成または IIS のセットアップ方法によって影響を受ける可能性があると理論付けられます。しかし、それがどこにあるのかは100%わかりません。

于 2013-09-22T01:54:34.980 に答える