jpluimers / homidom

Automatically exported from code.google.com/p/homidom
0 stars 0 forks source link

Web API: la classe Macro ne peut pas être sérialisé en XML #29

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Description :

l'URL /api/123456789/macro/ ne retourne rien.
A la place du XML qui devrait être retournée, la connection est coupée avec 
une erreur 500.

Original issue reported on code.google.com by Faze1...@gmail.com on 3 May 2013 at 6:10

GoogleCodeExporter commented 8 years ago
Le problème vient de la classe Macro :
        Dim _ListActions As New ArrayList
Le composant .NET chargé de créer le XML ne sait pas comment sérialiser 
cette liste car c’est une liste d’Objets. Et un « Object » par défaut 
c’est pas sérialisable.
Je sais que les webservice en soap y arrivent très bien, je suppose que 
c’est pas le même composant qui se charge de la sérialisation. Comme 
c’est géré par .NET je sais pas trop changer ce comportement.
C’est simple à vérifier, il suffit de rajouter <NonSerialized()> devant : 
       <NonSerialized()> Dim _ListActions As New ArrayList
Ensuite tu compiles et tu tests le Web API et tu verras que là ça marche.

Bon par contre c’est peut-être pas une solution de pas sérialiser la valeur 
sinon ça veut dire que les clients (des webservices et du web api) n’auront 
pas les données (ni recevoir, ni envoyer)
Moi je conseille plutôt de changer le type ArrayList vers List(Of XX) où XX 
est le type de l’objet qui est dans la liste.

Original comment by Faze1...@gmail.com on 3 May 2013 at 6:13