是否有一个快捷方式到二进制序列化对象中的每个属性?
-
26-09-2019 - |
题
如果存在其中的的对象的每个公共属性必须是串行化并属性是简单(只是数字或字符串或对象已经执行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();
不隶属于 StackOverflow