我正在使用RestSharp(通過NuGet 104.4版)調用Rest Web Service。我設計了一組匹配API中暴露資源的對象(POCO)。但是,我的對象屬性名稱與發佈數據時Rest服務所期望的屬性名稱不匹配,所以我想在向Rest服務發出請求以使它們匹配匹配時對其進行「轉換」。我讀到在我的POCO屬性中添加SerializeAs
屬性(使用指定的名稱)會使它們正確序列化,但它不會。RestSharp序列化爲JSON,對象未按預期使用SerializeAs屬性
我的POCO
Imports RestSharp.Serializers
<Serializable(), SerializeAs(Name:="ApiMember")>
Public Class ApiMember
<SerializeAs(Name:="id")>
Public Property Id As Integer?
<SerializeAs(Name:="email")>
Public Property EmailAddress As String
<SerializeAs(Name:="firstname")>
Public Property Firstname As String
<SerializeAs(Name:="lastname")>
Public Property Lastname As String
End Class
我打電話給API
Dim request As RestRequest = New RestRequest(Method.POST)
Dim member As ApiMember = new ApiMember()
member.EmailAddress = "[email protected]"
request.Resource = "members"
request.RequestFormat = DataFormat.Json
request.AddBody(member)
Dim client As RestClient = New RestClient()
client.BaseUrl = "http://url.com"
client.Authenticator = New HttpBasicAuthenticator("username", "password")
client.Execute(Of ApiGenericResponse)(request)
什麼最終被張貼
{"Id":null,"EmailAddress":"[email protected]","Firstname":null,"Lastname":null}
無tice這些屬性的名稱與我在SerializeAs
(大寫字母,電子郵件地址的名稱)中指定的大小寫不一致
我錯過了什麼嗎?
我絆倒了同樣的問題 - 你是如何解決這個問題的? –
如果您覺得其中某個答案有助於您解決問題,請[**接受此答案**](http://meta.stackoverflow.com/q/5234/153998)。這將表明你對那些花時間幫助你的人表示感謝。 –
@marc_s我沒有真正解決它,當時我正在嘗試使用RestSharp,結果我沒有使用那些「重命名」屬性,或者只是重命名我的POCO屬性以匹配REST API的屬性。 – MaxiWheat