代码之家  ›  专栏  ›  技术社区  ›  Arseni Mourzenko

是否有二进制序列化对象中每个属性的快捷方式?

  •  2
  • Arseni Mourzenko  · 技术社区  · 15 年前

    如果有一个物体 所有公共属性都必须序列化 属性很简单(只是数字、字符串或已经实现的对象 ISerializable )是否有一种简单的方法可以不用创建 GetObjectData(SerializationInfo info, StreamingContext context) 一个建筑工人 SerializationInfo 每次都争论?

    我知道它可以通过反射手动完成,但是.NET框架内是否有一个神奇的方法可以做到这一点?


    所以正确的答案是:

    不要尝试实现ISerializable——它是用于自定义序列化的。而是在类声明之前添加[serializable]属性。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Ray    15 年前

    尝试BinaryFormatter类-应该做您需要的事情

    编辑:您不是从BinaryFormatter派生的-它是用于进行序列化的实用程序类。以下是从文档复制的示例

    MyObject obj = new MyObject();
    obj.n1 = 1;
    obj.n2 = 24;
    obj.str = "Some String";
    IFormatter formatter = new BinaryFormatter();
    Stream stream = new FileStream("MyFile.bin", FileMode.Create, FileAccess.Write, FileShare.None);
    formatter.Serialize(stream, obj);
    stream.Close();
    
    推荐文章