Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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!
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"
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"