2009-05-28 64 views
2

初始化後我有我班[非序列化]字段被初始化內聯:C#[非序列化]內聯初始化場沒有反序列化

[NonSerialized] 
private bool running = true; 

但是,反序列化我已經運行的對象之後==假。這不是我想要的。我可以強制內聯初始化爲所有[NonSerialized]字段工作嗎?否則,我將不得不實施ISerializable ...

+0

發生這種情況是因爲反序列化過程在不調用任何構造函數的情況下創建新類型的未初始化對象。 – sisve 2009-05-28 09:35:00

回答

3

你可以在默認構造函數中設置它。

落實System.Runtime.Serialization.IDeserializationCallback

這就是所謂afther對象進行反序列化,所以你可以有你的執行額外的初始化。

+0

不起作用。據我所知,具有[Serializable]屬性的類隱式地實現了一個具有特殊簽名的構造函數,該簽名在反序列化時被調用。 – 2009-05-28 08:35:11