2

現在 POCO オブジェクトとして定義されている一部の設定を保存および復元し、保存されるデータの形式が変更されても保存/読み込み操作が機能するようにして、不明なデータが無視され、新しいデータが正しく追加されるようにしたい.

どのフレームワークを使用できますか? XML シリアライゼーションは壊れやすく、データ構造に一致しない要素があると壊れてしまうため、使用できないことはわかっています。「うまくいく」代わりに何を使用できますか?

4

3 に答える 3

4

XML であり、すべての変更を処理できるわけではありませんが、DataContractSeralizer はプロパティの追加/削除を処理できます。また、不明なデータを処理するためのコールバックもあります。

http://msdn.microsoft.com/en-us/library/ms731138.aspx

いつでも独自のものを作成できますが、それははるかに時間がかかります.

于 2013-05-03T14:48:15.763 に答える
2

シリアライゼーションを試してみるとJSON、必要なことができるかもしれません。

ただし、最善の解決策はおそらく、独自のシリアライゼーションを実装して、必要な方法で機能することを確認することです。これにより、追加された新しい値が必要な方法で確実に処理されます。

于 2013-05-03T14:42:36.763 に答える
2

「壊れやすい」と言うとき、おそらく「下位互換性がない」または「契約を変更しましたが、変更を処理できない」という意味です。

それは本当に「壊れやすい」ではありません。それは、「何かを変更したときに何が必要かを知るための人工知能が含まれていない」ということです。

したがって、最善の策は、独自のカスタム シリアライゼーション メカニズムを介して処理することです。それは、「これがもう存在しない場合はどうなるか、しかし私はそれを気にしない」というロジックを入れる場所だからです。

「ただの仕事」の解決策はありません、IMHO。ある人の「これはバージョンに関係なく存在する必要がある」が、別の人の「この新しいバージョンではこの情報をスキップできる」だからです。

于 2013-05-03T14:46:06.530 に答える