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