C# 用のテキストベース (つまり、バイナリではなく人間が読める) の拡張可能なシリアライゼーションを探しています。
保存したいアイテムの数はかなり少ないです (<100)。逆シリアル化後に実際に使用されるクラスを満たす、シリアル化用の追加クラスを作成しても問題ありません。
標準の組み込み XML シリアライゼーションは、読みやすくも拡張性もないと思います。
私はすでに protobuf-net を調べましたが、有望に見えましたが、バイナリであるため削除しました。
カスタムのシリアル化も試しましたが、ツー オブ ア カインドをシリアル化できませんでした。
JSON.net も見ましたが、カスタムのシリアル化よりもうまく機能しませんでした。
私のデータ構造は現在、おおよそ次のようになっています。
class ClassIWantToSerialize
{
DataContainer A;
DataContainer B;
DataContainer C;
DataContainer D;
DataContainer E;
DataContainer F;
double G;
double H;
// other stuff that I don't want to serialize...
}
class DataContainer
{
MinorDataContainer A;
MinorDataContainer B;
double C;
double D;
double E;
double F;
// other stuff that I don't want to serialize...
}
class MinorDataContainer
{
double A;
}
MinorDataStructure
2 番目(つまり)を追加しようとしたときに問題が発生しB
、同じフィールドを 2 回追加できないと不平を言いました。
class DataContainer
{
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
A.GetObjectData(info, context);
B.GetObjectData(info, context); // error upon calling this line
info.AddValue("C", C);
//...
}
}