0

我正在为 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(即B)时出现了问题,它抱怨它不能两次添加相同的字段。

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);
        //...
    }
}
4

0 回答 0