2
我有以下使用RestSharp調用Web服務的代碼。代碼運行時沒有錯誤,但是當我查看response.Data時,我看到Result對象未反序列化,並且仍包含默認值。現在Restharp中的json對象的反序列化
<Serializable()> <DataContract()> _
Private Class Result
<DataMember(IsRequired:=False)> _
Public responseCode As Long
<DataMember(IsRequired:=False)> _
Public responseMessage As String
Friend Const RESULT_OK As Long = 2000
End Class
Private Function Login(ByVal user As String, ByVal password As String) As RestResponseCookie
Dim req As New RestRequest("authenticationService/authentication/signIn", Method.POST)
req.RequestFormat = DataFormat.Json
Dim input As New SigninInput
input.requestParameters.username = user
input.requestParameters.password = password
req.AddBody(input)
Dim response As RestResponse(Of Result) = getRestClient().Execute(Of Result)(req)
If response.StatusCode = HttpStatusCode.OK Then
Dim res As Result = response.Data
End If
Return Nothing
End Function
,如果我的代碼更改爲以下:
Dim response As RestResponse = getRestClient().Execute(req)
If response.StatusCode = HttpStatusCode.OK Then
Dim des As New Json.DataContractJsonSerializer(GetType(Result))
Dim res As Result = CType(des.ReadObject(New IO.MemoryStream(response.RawBytes)), Result)
End If
反序列化運行就好了。 我試圖從代碼的非工作版本調試結果,並且內容似乎很好。這是我得到的內容:「{」responseMessage「:」成功:您的請求已成功完成。「,」responseCode「:2000}」,ContentType是「application/json」。
我很好,運行的代碼工作,但我會很高興知道爲什麼通過RestSharp反序列化不正確發生。