我试图通过使用部分类来使用我的WCF代理进行OnDeserializing工作,但由于某种原因,OnDeserializing没有被触发。在OnDeserialing中,我需要检查Web服务是否返回任何内容并在这种情况下设置我自己的默认值。在Visual Studio 2010中一切看起来都很好,我可以在代码编辑器中访问我的WCF代理的属性,但在运行时从不调用OnDeserialing。你能告诉我我做错了什么吗?这是代码:
代理类
public partial class SerialInfo : object, System.ComponentModel.INotifyPropertyChanged {
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string Location {
get {
return this.locationField;
}
set {
this.locationField = value;
this.RaisePropertyChanged("Location");
}
}
}
扩展代理类
public partial class SerialInfo
{
[OnDeserializing]
void OnDeserializing(StreamingContext c)
{
Location = "Test value";
MessageBox.Show("OnDeserializing was triggered!");
}
}
答案 0 :(得分:0)
尝试在属性中添加括号,然后更改方法名称
[OnDeserializing()]
void OnDeserializingMethod(StreamingContext c)
{
Location = "Test value";
MessageBox.Show("OnDeserializing was triggered!");
}
编辑:另外,部分类不应该具有相同的继承吗?你确定你的部分课程正在扩展你的想法吗?