考慮這一段代碼:序列化隊列的類型不工作
private Queue Date=new Queue();
//other declarations
public DateTime _Date {
get { return (DateTime)Date.Peek();}
set { Date.Enqueue(value); }
}
//other properties and stuff....
public void UpdatePosition(...)
{
//other code
IFormatter formatter = new BinaryFormatter();
Stream Datestream = new MemoryStream();
formatter.Serialize(Datestream, Date);
byte[] Datebin = new byte[2048];
Datestream.Read(Datebin,0,2048);
//Debug-Bug
Console.WriteLine(Convert.ToString(this._Date));
Console.WriteLine(BitConverter.ToString(Datebin, 0, 3));
//other code
}
第一的WriteLine的輸出是完美的。即,檢查隊列是否被初始化。它是。正確的變量存儲等(我插入該隊列中的值,該部分代碼未顯示)。
但第二個WriteLine沒有給出正確的預期答案:它將整個隊列序列化爲00- 00-00。
謝謝彼得,是的,我想我會和這一起去。我以這種方式成功實現了這一點: 'Pos.Date = DeSerFormatter.Deserialize(DateDeserial),作爲隊列;' 我可以理解IL對於兩者都必須是相同的。 其次,我將'Queue'類型改爲'隊列' –
Soham
2010-04-22 06:37:32