0
我在將SOAP請求反序列化爲對象時遇到困難。從SOAP請求中反序列化XML問題
的XML看起來像這樣(我有過這種控制,所以這可以改變):
<v001:OrderRequest xmlns:v001="http://service.test.com/ServiceMessages/v001">
<v001:TheOrder>
...
</v001:TheOrder>
</v001:OrderRequest>
這是(的一部分)的對象(我有過這個沒有控制):
...
<MessageContract(_
WrapperName:="OrderRequest", _
WrapperNamespace:="http://service.test.com/ServiceMessages/v001", _
IsWrapped:=true)> _
Public Class OrderRequest
<MessageBodyMember(_
[Namespace]:="http://service.test.com/ServiceMessages/v001", _
Order:=0)> _
Public TheOrder As Service.TheOrder
Public Sub New()
MyBase.New
End Sub
Public Sub New(theOrder As Service.Order)
MyBase.New
Me.TheOrder = theOrder
End Sub
End Class
...
這是我用反序列化代碼:
...
Dim xmlString = requestEnvelope.Body.InnerXml
Dim orderRequest As Service.OrderRequest = Nothing
Using xmlTextReader = New XmlTextReader(New MemoryStream(xmlString))
Dim xmlSerializer = New XmlSerializer(GetType(Service.OrderRequest), New XmlRootAttribute("OrderRequest"))
orderRequest = CType(xmlSerializer.Deserialize(xmlTextReader), Service.OrderRequest)
End Using
...
但我不斷收到以下錯誤:
There is an error in XML document (1, 2).
<OrderRequest xmlns='http://service.test.com/ServiceMessages/v001'> was not expected.
我試圖剝離的命名空間,前綴,省略XmlRootAttribute參數XmlSerializer的,...產生不同的錯誤消息或空物體...... 有什麼我失蹤或者做錯了什麼?我一直在盯着這個近2天,我擔心我只是忽略了一些東西。
一個良好的睡眠是我所需要的... – 2014-09-11 09:31:08