Tan*_*moy 2 c# silverlight properties
我正在调试代码,发生了一件奇怪的事情.有一个字符串属性说MyProperty.当我在属性的setter和默认构造函数(唯一的构造函数)中添加断点时,首先调用setter.我不知道代码的其他级别发生了什么,但在任何情况下这对我来说都很奇怪.所有成员都是非静态的.该类具有[DataContract]属性,成员为[DataMember].任何人都能解释一下吗?
我不能分享比这更多的代码.代码也在Silverlight项目中.
这是在WCF反序列化期间吗?在WCF反序列化中,根本不调用构造函数.这是设计的.WCF对象被设计为数据传输对象,并且驻留在setter和getter后面的任何逻辑都是危险的.有可能,你正在看到这种行为并关注它,因为你在业务逻辑中有一些东西存在于setter中.为了解决这个问题,我建议只使用[DataMember]属性来装饰自动属性和字段,这将阻止任何其他逻辑被触发.另外,要注意在构造函数中执行的任何逻辑,在反序列化期间不会执行该逻辑.