2012-04-18 5 views
1

WCFプロキシで部分クラスを使用してOnDeserializingを使用しようとしていますが、何らかの理由でOnDeserializingがトリガーされません。 OnDeserialingでは、Webサービスが何も返さなかったかどうかを調べ、その場合には独自のデフォルト値を設定する必要があります。 Visual Studio 2010ではすべてが正常に見え、コードエディタでWCFプロキシのプロパティにアクセスできますが、実行時にはOnDeserialingは呼び出されません。私が間違っていることをアドバイスしてもらえますか?部分クラスを使用してWCFプロキシを拡張し、OnDeserializing:OnDeserializingが発生しない

Proxyクラス

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

てみメソッド名を自分の属性にブラケットを追加し、変更

[OnDeserializing()] 
void OnDeserializingMethod(StreamingContext c) 
{ 
    Location = "Test value"; 
    MessageBox.Show("OnDeserializing was triggered!"); 
} 
:ここでは、コードです

EDIT:また、部分クラスに同じ継承があってはいけませんか?あなたの部分的なクラスがあなたの考えを拡張していると確信していますか?

+0

この問題は、DataContractSerializerを使用していなかったために発生しているようです。 OnDeserializingは、DataContractSerializerでのみサポートされています。 – user405723

関連する問題