2010-06-22 104 views
3

爲什麼DataContractSerializer會繞過初始值設定項?爲什麼DataContractSerializer會繞過初始值設定項?

背景:

序列化格式被反序列化過程中未初始化的類的實例。也就是說,所有字段都設置爲默認值的實例。對於引用類型,它將爲空。這就是爲什麼在這種情況下「作者」導致空引用異常。你必須在你所註釋的代碼中創建它。通過爲作者包含此「懶惰」初始化代碼,您可以刪除字段初始值設定項。此外,您必須更改構造函數以使用屬性而不是字段direclty。

/卡萊 http://social.msdn.microsoft.com/Forums/en-CA/netfxremoting/thread/b786050e-4850-4739-8b2e-d57e35d95952

回答

3

由於性能原因 - 它似乎使用默認參數的構造函數和反序列化設置屬性是相當緩慢的 - WCF處理的方式要快得多。

因此,DataContractSerializer不需要無參數的公共構造函數(就像XmlSerializer一樣) - 您不需要它,它將不會被使用。

+0

嗯,我當然喜歡放棄無參數的公共構造函數的要求。 – 2010-06-22 19:04:09

相關問題