Reader C# プロジェクトは ~POCO をファイルに保存する必要があります。しかし、私たちはデビューしたばかりで、頻繁に変化が起こります。私たちのソフトは、すでに少数の顧客によって使用 (持続) されています。多くの理由から、私は何よりも XML を使用することを好みます。
多くの xml シリアライゼーション ライブラリをチェックしました。
- 多くのライブラリには、特定のタイプとバージョンが格納されています。私はそれを必要としません。
- 多くのライブラリでは、自分でシリアル化する可能性はありません。つまり、データをカスタムでロード/保存するためのインターフェースが必要です (多くの利点が見られます **)。
- 一部のライブラリでは、コンストラクターを空にする必要があります
- 一部のライブラリはパブリック プロパティのみを管理します
- 一部のライブラリには、型に多くの制限があります (辞書をサポートしていないなど)。
** (データをロード/保存するインターフェースの利点)
- 多くのバージョンの管理が容易
- 必要に応じてハードコーディングされた変換を有効にします (クラス x -> クラス y、…)
- 古いコードを保持しない方が簡単
私のニーズには、C++ での逆シリアル化に少し似た古い方法を使用する方がよいと強く思います。属性を使用する代わりに、フィールドとフィールド名を手動で追加できるようにする方がよいと思います。
すこし:
void XmlDeserialize(XmlReader xmlReader)
{
xmlReader.Load((n)=>Version(n)); // or just: _version = xmlReader.LoadInt("Version");
xmlReader.Load((n)=>Name(n));
xmlReader.Load((n)=>EmployeeId(n));
if (Version ==2)
…
If (version == 3)
…
私のニーズに最も近いのは、IExtensibleDataObject をサポートする DataContractSerializer ですが、使用するのは面倒です。
私はどこでも間違っていないかどうか自問しますか?その必要性(またはこのビジョン)を持っているのは私だけではありません。そのためのライブラリを誰も書いていないのはなぜですか?
私が間違っていると思うことは何ですか?おすすめは何ですか ?