【问题标题】:How to initialize local fields of a WCF proxy class on deserialization如何在反序列化时初始化 WCF 代理类的本地字段
【发布时间】:2011-03-08 19:12:18
【问题描述】:
在我的 Silverlight 客户端中,我通过设置 WCF 引用创建了一个部分类。我扩展了这个类,添加了一些 RelayCommand 属性。我需要初始化这些我通常会在构造函数中执行的属性。但是似乎没有调用构造函数,我相信这是VTS的结果但是我也没有成功使用OnDeserialized属性。
初始化 WCF 类的客户端数据成员的规定方法是什么。
【问题讨论】:
标签:
silverlight
wcf
serialization
【解决方案1】:
我创建了一个示例项目,一切都按预期工作。如果此代码没有帮助 - 发布您的数据合同和客户端代码。
namespace SilverlightApplication3.ServiceReference1
{
public partial class SomeModel
{
public string ExtendedProperty { get; set; }
[OnDeserializing]
public void OnDeserializingMethod(StreamingContext context)
{
this.ExtendedProperty = "Ok";
}
}
}
服务方法调用:
var proxy = new ServiceReference1.Service1Client();
proxy.DoWorkCompleted += (s,e) => Debug.WriteLine(e.Result.ExtendedProperty); //Ok
proxy.DoWorkAsync();