2

如果有一个对象,其中每个公共属性都必须被序列化并且属性很简单(只是数字或字符串或已经实现的对象ISerializable),是否有一种简单的方法可以做到这一点,而不必每次都创建GetObjectData(SerializationInfo info, StreamingContext context)一个构造函数作为参数?SerializationInfo

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


所以正确答案是:

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

4

1 回答 1

4

尝试 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();
于 2010-08-07T02:35:49.590 回答