J'ai un webservice en C# .NET avec l'espace de noms suivant:Passage objet sérialisé par le service Web par rapport à passer l'objet
[WebService (Namespace = "http://enterpriseName/wsName")]
Le service Web contient une WebMethod GetServiceObject et un MyObject de classe. Cette méthode Web renvoie une chaîne dont le contenu est une instance sérialisée de MyObject.
[WebMethod (MessageName = "GetServiceObjectXML" Description = "Get ServiceObject from Server to Client")]
public string GetServiceObjectXML()
Cette méthode renvoie le code XML suivant:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services>
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
Le problème que je rencontre est que lorsque j'appelle cette méthode à partir du côté client et essayez de désérialiser ce xml à la classe MyObject et je reçois un Objet NULL.
Après que je créé une nouvelle WebMethod avec la signature suivante:
[WebMethod (MessageName = "GetServiceObject" Description = "Get ServiceObject from Server to Client")]
public MyObject GetServiceObject()
Quand j'appelle cette méthode à partir du côté client, je reçois l'objet correctement rempli et je peux aussi sérialiser l'objet sans problème, mais le résultat de sérialisation est le XML suivant:
<? Xml version = "1.0" encoding = "utf-16"?>
<ServiceObject Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services Xmlns="http://enterpriseName/wsName">
<service>
<id>3</id>
<date>02/08/2010</date>
</service>
</Services>
</ServiceObject>
qui est différent du xml généré par le WebMethod GetServiceObjectXML.
Comment puis-je contourner ce problème, puisque j'ai l'intention d'utiliser les deux méthodes sur le même service web et chez le même client?