1

部分クラスを使用して、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!");
}
}
4

1 に答える 1

0

属性に括弧を追加して、メソッド名を変更してみてください

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

編集:また、部分クラスは同一の継承を持つべきではありませんか? あなたの部分クラスがあなたが考えているものを拡張していると確信していますか?

于 2012-04-18T10:12:28.280 に答える