我開發了一個WCF服務應用程序,該應用程序託管在IIS 7.5中,目標.NET 3.5僅配置了basicHttpBinding端點。 OperationContract簽名由複合類型組成,其中一個屬性是自定義類型。當該屬性未被消費客戶端初始化時,該服務上的解串器似乎忽略該屬性,從而將該屬性留空/無。我想初始化這個自定義類型,如果它null/nothing,我意識到,WCF序列化不會調用構造函數,所以我使用了反序列化回調。回調執行並初始化類型,但在回調完成後立即返回null/nothing。逐步執行代碼,ExtensionData屬性設置器在回調之後立即執行,並且此時我注意到該屬性被重置爲空/無。我錯過了什麼?下面是我的示例代碼WCF反序列化在OnDeserializing回調後將DataMember值重置爲默認值
<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
感謝您的答覆,該工作。 – confuzed 2011-05-30 16:53:29