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