gpt4 book ai didi

silverlight - 部分方法 OnCreated 未按预期调用

转载 作者:行者123 更新时间:2023-12-04 22:24:06 26 4
gpt4 key购买 nike

我在部分类中扩展了 Silverlight 客户端的域类。具体来说,我添加了一个 RelayCommand 属性,我将绑定(bind)一个按钮。 RelayCommand 属性需要初始化,因此看起来最好的地方是在 OnCreated 部分方法中。

但是我收集到,当来自服务器的对象在客户端实现时,它的构造函数没有被调用(这对我来说似乎完全错误!)因为它的构造函数没有被调用,所以它没有调用 OnCreated 方法。

是否有配置或约定在对象物化时调用此 OnCreated 部分方法?

最佳答案

DataContractSerialization 不会调用它反序列化的对象的构造函数。做出这个决定是因为 .NET 中以前的序列化方法必须始终在任何要序列化的对象上有一个默认构造函数是一个问题。这并不特定于 RIA 服务,它是在创建 WCF 本身时做出的设计决策,并且没有配置可以更改它。

您可以在 http://blogs.msdn.com/b/carlosfigueira/archive/2011/09/06/wcf-extensibility-serialization-callbacks.aspx 找到更多信息以及如何使用 [OnDeserialized] 来复制被调用的构造函数的效果的示例。

但是,还有第二个问题可能会给您带来问题。实体一直在构建。例如,每当您调用 TEntity.GetOriginal 时,都会创建一个新的分离实体并从该方法返回。这使得尝试执行诸如配置 RelayCommand 之类的任何事情都成为潜在的性能和稳定性问题。您最好在 DataService 或 ViewModel 级别而不是在实体本身内部配置 RelayCommands。

关于silverlight - 部分方法 OnCreated 未按预期调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com