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