Ral*_*ton 4 silverlight wcf-ria-services
我在部分类中扩展了我在Silverlight客户端的域类.具体来说,我添加了一个RelayCommand属性,我将绑定一个按钮.RelayCommand属性需要初始化,因此看起来最好的地方是OnCreated部分方法.
但是我收集到,当服务器上的对象在客户端实现时,它的构造函数没有被调用(这看起来完全错误了!)因为它的构造函数没有被调用,所以它没有调用OnCreated方法.
是否有一个配置或约定,以便在对象具体化时调用此OnCreated部分方法?
小智 7
DataContractSerialization不会调用它反序列化的对象的构造函数.之所以做出这样的决定,是因为.NET中的先前序列化方法必须始终在任何要序列化的对象上具有默认构造函数,这是一个问题.这不是RIA Services特有的,它是在WCF本身创建时做出的设计决策,并且没有配置可以更改它.
您可以在http://blogs.msdn.com/b/carlosfigueira/archive/2011/09/06/wcf-extensibility-serialization-callbacks.aspx上找到更多信息,以及如何使用[OnDeserialized]来实现的更多信息复制被调用的构造函数的效果.
但是,还有第二个问题可能会导致您遇到问题.实体一直在构建.例如,每次调用TEntity.GetOriginal时,都会创建一个新的分离实体并从该方法返回.这使得尝试执行诸如配置RelayCommand潜在的性能和稳定性问题.您可能最好在DataService或ViewModel级别配置RelayCommands,而不是在实体本身内部.
归档时间: |
|
查看次数: |
676 次 |
最近记录: |