Я использую RestSharp (версия 104.4 через NuGet) для совершения вызовов в веб-службу Rest. Я разработал набор объектов (POCO), который соответствует ресурсам, открытым в API. Однако имена свойств объектов не соответствуют ожидаемым службой Rest Rest при отправке данных, поэтому я хотел бы "преобразовать" их, когда я делаю запрос службе Rest, чтобы они соответствовали совпадению. Я прочитал, что добавление атрибута SerializeAs
(с указанным именем) в моем свойстве POCO сделает их сериализацией правильно, но это не будет.
Мой 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}
Обратите внимание, что имя свойства не соответствует тикам, указанным в SerializeAs
(верхние регистры, имя EmailAddress)
Я что-то пропустил?