通过实现 ISerializable 添加更多控制
这样可以更好地控制序列化,如何保存和加载类型
实现 ISerializable 接口并创建一个空构造函数进行编译
[Serializable]
public class Item : ISerializable
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
public Item ()
{
}
protected Item (SerializationInfo info, StreamingContext context)
{
_name = (string)info.GetValue("_name", typeof(string));
}
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
info.AddValue("_name", _name, typeof(string));
}
}
对于数据序列化,你可以指定所需的名称和所需的类型
info.AddValue("_name", _name, typeof(string));
反序列化数据后,你将能够读取所需的类型
_name = (string)info.GetValue("_name", typeof(string));