2010-06-22 75 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

相关问题