【发布时间】:2011-11-20 10:00:56
【问题描述】:
可能重复:
How does WCF deserialization instantiate objects without calling a constructor?
如果我使用 DataContract 属性,它不会调用我的构造函数,但如果我跳过它,它就会调用。为什么会这样?
【问题讨论】:
可能重复:
How does WCF deserialization instantiate objects without calling a constructor?
如果我使用 DataContract 属性,它不会调用我的构造函数,但如果我跳过它,它就会调用。为什么会这样?
【问题讨论】:
序列化/反序列化的目的是重新创建原始状态的对象。该对象已经被构造,所以我们不需要调用构造函数。这就像从死里复活一个物体,而不是生下来。 :)
如果您需要在反序列化对象时执行一些代码,只需使用 OnDeserialized 属性装饰一个方法,然后从那里调用您需要执行的代码。
【讨论】: