RestSharp sérialisation à JSON, l'objet n'utilise pas l'attribut SerializeAs comme prévu

Je suis en utilisant RestSharp (version 104.4 via NuGet) pour effectuer des appels vers un Service Web Rest. J'ai conçu un ensemble d'objets (POCO) ce qui correspond à des ressources exposées dans l'API. Cependant, mes objets de propriété noms ne correspondent pas à ceux attendus par le Reste du Service lors de la publication des données, donc je voudrais à "transformer" quand je fais une demande pour le service de Repos pour les faire correspondre à celle. J'ai lu que l'ajout de SerializeAs attribut (avec un Nom spécifié) sur mon POCO de la propriété de faire sérialiser correctement, mais il ne sera pas.

Ma 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

Mon Appel à l'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)

Ce qui finit par être publié

{"Id":null,"EmailAddress":"[email protected]","Firstname":null,"Lastname":null}

Notez le nom de l'propriétés ne correspondent pas à celles que j'ai précisé dans SerializeAs (majuscules, le nom de votre Adresse de courrier électronique)

Suis-je raté quelque chose ?

source d'informationauteur MaxiWheat