如果存在其中的的对象的每个公共属性必须是串行化并属性是简单(只是数字或字符串或对象已经执行ISerializable),有一种简单的方法来做到,而不必创建GetObjectData(SerializationInfo info, StreamingContext context)和一个构造服用SerializationInfo作为参数每次?

我知道,它可以手动反射来完成,但有一个魔术方法.NET框架内做呢?


因此,正确答案是:

  

不要试图实现ISerializable的 - 这是用于自定义序列。而不是你的类声明前添加[Serializable]属性的权利。

有帮助吗?

解决方案

尝试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();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top