Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Implémenter une collection dans WebService

1 réponse
Avatar
lb
Bonjour,

Je passe en paramètres dans mon WebService une collection et j'obtiens
l'erreur suivante:

"You must implement the Add(System.Object) method on
Microsoft.VisualBasic.Collection because it inherits from ICollection"


Comment faire pour régler ce problème.


Merci!

1 réponse

Avatar
Philippe LALOUM
Bonjour,

Un objet de type VB.NET Collection ne peut être passer tel quel en paramètre
d'une WebMethod. En effet, l'implémentation ASP.NET de WebService SOAP
n'accepte en paramètre de WebMethod que des types de données pouvant être
implictement sérialisés en XML (par utilisation de la reflection sur
l'objet). Ce n'est pas le cas de l'objet Collection VB.NET car par
reflection, il est impossible de déterminer le type d'objet que la collection
contient (en effet, la propriété Item renvoit un type Object) et donc
impossible de les sérialiser implicitement en XML.

Une solution envisageable:

- définir une collection Custom fortement typée (pour laquelle la
sérialisation XML implicite est possible), et la passer sous ce type en
paramètre de WebMethod.

Une exemple de sérialisation XML de classe implémentant l'interface
ICollection figure ici (topic Serializing a Class that implements the
ICollection Interface)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconanexampleofxmlserializationwithxmlserializer.asp


L'article suivant énumère les types de données supportées par les Web
Services ASP.NET
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondatatypessupportedbywebservices.asp



"lb" a écrit :

Bonjour,

Je passe en paramètres dans mon WebService une collection et j'obtiens
l'erreur suivante:

"You must implement the Add(System.Object) method on
Microsoft.VisualBasic.Collection because it inherits from ICollection"


Comment faire pour régler ce problème.


Merci!