爲什麼在反序列化之後,對象引用與序列化之前不同。序列化和反序列化後的對象引用
確定讓我解釋一下這個
我有一個字符串
字符串測試= 「的TestString」;
現在我做Serilization
DataContractJsonSerializer _DataContractJsonSerializer
= new DataContractJsonSerializer(typeof(string));
MemoryStream ms = new MemoryStream();
_DataContractJsonSerializer.WriteObject(ms, test);
var jsonString = Encoding.Default.GetString(ms.ToArray());
現在我做DeSerilization從jsonstring到實際值
MemoryStream ms1 =
new MemoryStream(Encoding.Unicode.GetBytes(jsonString));
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(string));
string DeseriliaedStrring = serializer.ReadObject(ms1) as string;
在這裏DeseriliaedStrring我得到了實際價值,但如果我檢查有沒有引用它們不相等
bool isReferenceEqual = object.ReferenceEquals(DeseriliaedStrring, test);
他們不應該引用相同的對象,一個是源和其他(反序列化)是傳真,他們是可比較的,但沒有一個是相同的。 – 2011-03-03 13:24:39