通過實現 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));