我們的任務很簡單,我們有一個對象圖,每個對象(IDItem)都有一個唯一的ID。 對象圖存在兩次,在客戶端和服務器上。ISerializable的:在反序列化
現在,我們通過一些序列化命令到服務器。該命令具有一些IDItem字段。 IDItems實現了ISerializable接口,並且只將它們的ID存儲在SerializationInfo中。像:
// The method called when serializing a IDItem.
void GetObjectData(SerializationInfo info, StreamingContext context)
{
// Instead of serializing this object, just save the ID
info.AddValue("ID", this.GetID());
}
問題是,我們如何將現有對象分配給解串器創建的實例?顯然,類似的ISerializable的構造方法不起作用以下,因爲「這個」標識是隻讀:
//does not work
protected IDItem(SerializationInfo info, StreamingContext context)
{
this = GlobalObject.GetIDItem(info.GetString("ID"));
}
所以任何想法,我們如何才能分配現有對象的反序列化對象?
最好的問候, thalm
非常好,在助手類中實現ISerializable以獲取ID是缺少的部分...非常感謝! – thalm 2010-07-09 16:01:59