Silverlight中的反序列化属性

Silverlight中的反序列化属性,silverlight,Silverlight,我在silverlight和WCF服务之间移动的数据相当有限。所以我建立了一些数据合同。我希望能够使用相同的类在客户端进行一些有限的数据验证,而不需要DTO之类的开销 我有一份类似这样的合同: [DataContract] class MyObject { private String _id; [DataMember] public String ID { get { return

我在silverlight和WCF服务之间移动的数据相当有限。所以我建立了一些数据合同。我希望能够使用相同的类在客户端进行一些有限的数据验证,而不需要DTO之类的开销

我有一份类似这样的合同:

[DataContract]
class MyObject
{
   private String _id;
   [DataMember]
   public String ID
        {
            get
            {
                return _id;
            }
            set
            {
                _id = value;
                DoStuff();
            }
}
现在,当我反序列化对象时,将运行setter。这将设置好的私有变量_id。但我不希望DoStuff在反序列化上运行

我曾希望使用[OnDeserialized]和[OnDeserialized]属性。我可以定义一个bool标志,用来控制setter中运行的内容。这实际上在服务器端有效,但Silverlight没有这些属性


有什么建议吗

我建议不要重载这些类的使用来执行逻辑。这是您的服务数据合同。您不应该触摸生成的Silverlight代理类。我建议您将验证逻辑放入反序列化完成后调用的其他类中。否则,当错误实际存在于数据中时,可能会在序列化代码中出现错误。

正如我所说,我没有太多的数据可以移动。我试图避免为了通过层传递数据而多次定义对象。我想念ADO.NET数据集。。。