30

デシリアライズする場合、DataContractSerializerは、要素が一致するだけでなく、他の要素に対して特定の順序である必要があります。

私のアプリケーションは、すべてのフィールドをその名前で一意に識別できるようになっています。したがって、XMLファイルに要素を任意の順序で含めることができ、デシリアライザーが引き続き機能するようにしたいと思います。

このようなDataContractを設定することは可能ですか?

データメンバーの順序の導入段落は、順序がオプションで強制されることを示唆していますが、実際にそれをオプションにする方法を見つけていません。

フォローアップの質問DataContractSerializerを使用した単純なデータファイルのバージョン管理

4

1 に答える 1

21

いいえ、オプションではありません。順序を明示的に指定することはオプションですが、それ以外の場合、順序はリンクした基本ルール(最初に基本タイプ、アルファベットなど)によって決定されます。

導入段落は、たとえば、生成されたプロキシを使用している場合など、順序を常に知っている必要や気にする必要がないことを単に意味しています。

DataContractSerializerを使用してファイルを逆シリアル化する場合、私が考えることができる最善の解決策は、逆シリアル化する前にXSLTを使用してファイルを正しい順序に変換することです。

Webサービス(DataContractSerializerが設計された目的)を呼び出す場合は、契約の順序に固執することをお勧めします。

于 2009-10-03T11:39:28.340 に答える