1

我正在尝试通过使用部分类使 OnDeserializing 与我的 WCF 代理一起工作,但由于某种原因,不会触发 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!");
}
}
4

1 回答 1

0

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

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

编辑:另外,部分类不应该具有相同的继承吗?您确定您的部分课程正在扩展您认为的内容吗?

于 2012-04-18T10:12:28.280 回答