使用部分类和OnDeserializing扩展WCF代理:OnDeserializing不会被触发

时间:2012-04-18 09:23:02

标签: wcf proxy deserialization partial-classes

我试图通过使用部分类来使用我的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!");
}
}

1 个答案:

答案 0 :(得分:0)

尝试在属性中添加括号,然后更改方法名称

[OnDeserializing()]
void OnDeserializingMethod(StreamingContext c)
{
  Location = "Test value";
  MessageBox.Show("OnDeserializing was triggered!");
}

编辑:另外,部分类不应该具有相同的继承吗?你确定你的部分课程正在扩展你的想法吗?