Comment faire pour modifier les types utilisés dans les classes proxy générés avec WSDL.exe

Traductions disponibles Traductions disponibles
Numéro d'article: 326790 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

L'outil Web Services Description Language (WSDL.exe) génère code proxy pour les services Web XML. Les types générés qui sont utilisés dans la classe proxy sont basées sur le contenu du document WSDL qui décrit le service Web XML. Toutefois, les types générés peuvent être pas ce que vous souhaitez ni ce que vous attendez.

WSDL.exe détermine que le meilleur génération type à utiliser pour les objets qui sont spécifiés dans la description du service. Dans certains cas, l'outil utilise une approche dénominateur moins courants pour les objets casting à un type. Par exemple, un paramètre de liste de tableaux dans un WebMethod est décrit dans WSDL comme un schéma XML (XSD) séquence. Lorsque WSDL.exe trouve cette description du tableau dans la description du service, WSDL.exe génère une classe de proxy qui utilise un groupe d'objets. Vous pouvez travailler avec une liste de tableaux , qui était le type d'origine qui a été utilisé dans le WebMethod. Si vous ne souhaitez pas utiliser les types générés, vous pouvez modifier les types de généré aux types plus souhaitable. Pour obtenir le type d'objet appropriée, vous pouvez ouvrez le fichier qui contient la classe de proxy généré, modifiez manuellement le paramètre de méthode généré et puis renvoyer les types aux types d'objet appropriée.

Générer le code proxy

Dans l'exemple suivant, le service Web XML dispose le service Web méthode avec le prototype suivant :
string DummyMethod(System.Collections.ArrayList intList)
				
WSDL.exe vous permet de générer le fichier source proxy.

Modifier manuellement le code

  1. Ouvrez le fichier source du proxy dans un éditeur de texte.
  2. Rechercher les deux méthodes :
            public string DummyMethod(object[] intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(object[] intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					
  3. Modifier le code pour :
            public string DummyMethod(System.Collections.ArrayList intList) {
                object[] results = this.Invoke("DummyMethod", new object[] {
                            intList});
                return ((string)(results[0]));
            }
    
            public System.IAsyncResult BeginDummyMethod(System.Collections.ArrayList intList, System.AsyncCallback callback, object asyncState) {
                return this.BeginInvoke("DummyMethod", new object[] {
                            intList}, callback, asyncState);
            }
    					

Plus d'informations

Services Web XML sérialisent des objets à XML et puis désérialiser le code XML vers des objets. En règle générale, un objet de type particulier peut être sérialisé et désérialisé ensuite à un autre objet du même type. Toutefois, si vous utilisez différents types, cela peut ne pas fonctionner.



Références

Pour plus savoir comment les types sont sérialisés et désérialisées, reportez-vous au adresse site Web de Microsoft à l'adresse suivante :
XML et la sérialisation SOAP
http://msdn.microsoft.com/library/?url=/library/en-us/cpguide/html/cpconserialization.asp?frame=true


Propriétés

Numéro d'article: 326790 - Dernière mise à jour: lundi 28 avril 2003 - Version: 4.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Mots-clés : 
kbmt kbhowtomaster KB326790 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 326790
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com