basicHttpBindingエンドポイントのみで構成された.NET3.5を対象とするIIS7.5でホストされるWCFサービスアプリケーションを開発しました。OperationContractシグニチャは、そのプロパティの1つがカスタム型である複合型で構成されます。このプロパティが消費側クライアントによって初期化されていない場合、サービスのデシリアライザーはプロパティを無視しているように見え、null/nothingのままになります。null / noneの場合、このカスタムタイプを初期化したいのですが、WCFシリアル化ではコンストラクターが呼び出されないため、逆シリアル化コールバックを使用しました。コールバックが実行され、型が初期化されますが、コールバックが完了するとすぐに、このプロパティはnull/nothingに戻ります。コードをステップスルーし、ExtensionDataプロパティセッターはコールバックの直後に実行され、この時点でプロパティがnull/nothingにリセットされていることに気付きます。私は何が欠けていますか?これが私のサンプルコードです
<DataContract(Name:="Request")> _
Public Class Request
Implements IExtensibleDataObject
<DataMember(Name:="MyCustomType")>
Public MyCustomType As CustomType
Private _ExtensionDataObject As ExtensionDataObject
Public Overridable Property ExtensionData() As ExtensionDataObject Implements IExtensibleDataObject.ExtensionData
Get
Return _ExtensionDataObject
End Get
Set(value As ExtensionDataObject)
_ExtensionDataObject = value
End Set
End Property
<OnDeserializing()>
Sub OnDeserializing(c As StreamingContext)
Me.myCustomType = New CustomType()
End Sub
End Class