J'essaie d'utiliser le Highrise Api avec le .NET 4.5 wrapper by scottschluer afin de poster une nouvelle personne sur notre compte Highrise avec les données personnalisées qu'ils saisissent.Highrise Api, Données du sujet ne pas poster avec RestSharp
Le problème que je rencontre est avec les données personnalisées. L'objet personne est correctement affiché, mais les champs de données du sujet ne sont pas inclus dans le message. J'ai rencontré cet article: Highrise Custom Fields. Il semblait que la chose qui manquait était l'attribut type="array"
du champ subject_datas
. J'ai testé cette hypothèse en créant manuellement une requête en utilisant la valeur sérialisée de l'objet que j'essayais de publier. Le résultat de ce test a été une publication réussie sur le serveur avec tous les champs de données personnalisés remplis.
J'ai essayé d'étendre les classes à partir de l'assembly wrapper pour ajouter cet attribut manquant à la liste, mais cela ne semblait toujours pas fonctionner. L'objet Person a une propriété pour une liste d'objets SubjectData, j'ai écrasé cette propriété dans une classe enfant pour utiliser une classe personnalisée à la place. De cette façon, je pourrais ajouter une propriété à utiliser comme attribut. Cette classe personnalisée ne semblait toujours pas fonctionner.
Après avoir regardé le code pour RestSharp's XmlSerializer, il semble qu'il ajoutera seulement une liste d'éléments quand cet objet implémente IList. Ce n'était pas un problème, j'ai pu le faire fonctionner, mais le code ne semble pas permettre d'ajouter des attributs à l'élément list. Il ne regarde que les enfants de la classe list et ignore les autres propriétés de l'objet.
Alors ma question est la suivante:
Est-il possible d'appliquer des attributs à une propriété de liste dans RestSharp, ou est-il une autre façon d'ajouter l'attribut type="array"
au nœud data_subjects
XML avant la demande est envoyée?