Définition par défaut d'URL différentes lors de la génération du proxy de service Web avec WSDL.exe

StackOverflow https://stackoverflow.com/questions/143019

  •  02-07-2019
  •  | 
  •  

Question

Dans mon projet, de nombreux services Web partagent des types.

Par souci de simplicité, je présenterai deux services Web.

WebService1 à l'adresse http: //MyServer/WebService.asmx . WebService2 à l'adresse http: //MyServer/WebService.asmx

.

Lorsque je génère le proxy pour ces deux services, j'utilise:

wsdl / sharetypes http: //MyServer/WebService1.asmx http: //MyServer/WebService2.asmx / appsettingurlkey: WebServiceUrl / namespace: MyNamespace /out:MyProxy.cs

Le problème est que le paramètre appsettingurlkey est identique pour chaque service Web. dans le fichier proxy. Je veux pouvoir spécifier plusieurs Paramètres de paramètres d'appli. Comment est-ce accompli? Je pense depuis que le paramètre / sharetypes est devenu disponible, il devrait y avoir une solution pour spécifier le appsettingurlkey spécifiquement pour chaque Service Web identifié.

Si cela n’est pas possible avec le fichier wsdl.exe, que proposeriez-vous que je fasse? Je préférerais ne pas mettre à jour le code généré par wsdl.exe et je ne souhaite pas passer par toute mon application en passant l'URL à chaque instance des services Web.

Était-ce utile?

La solution

Les classes de proxy générées étant des classes partielles, ma solution serait donc d'ajouter votre propre constructeur dans un fichier de code différent (non généré), qui lit explicitement un paramètre différent pour chaque proxy.

Autres conseils

Pour compléter la propre réponse d’Elie, voici le courrier électronique que je lui ai donné.

J'ai dû bloguer parce que le code XML n'était pas bien collé dans cette zone de texte: http://www.rickdoes.net/blog/archive/2008/09/29/wsdl-shared-types-and-configuration.aspx

Ahh, au lieu de créer une autre classe partielle avec un constructeur surchargé en passant l’URL, les paramètres supplémentaires suivants du wsdl.exe vont résoudre mon problème ...

wsdl / sharetypes http: //MyServer/WebService1.asmx http: //MyServer/WebService2.asmx / appsettingurlkey: WebServiceUrl / espace de nom: MyNamespace /out:MyProxy.cs / appsettingurlkey: BaseSoapUrl / appsettingbaseur: http: // MyServer /

Si le composant Web.config a un appSetting BaseSoapUrl, il l'utilisera pour remplacer le http: // MyServer / . sous chaîne de MyProxy.cs. Si appSetting n'est pas présent, il utilisera simplement le chemin fourni dans wsdl.exe (exemple: {BaseSoapUrl} /WebService1.asmx lors de l'utilisation de appSetting ou http: //MyServer/WebService1.asmx lorsque vous n’utilisez pas l’appSetting).

Merci à Rick Kierner de m'avoir orienté dans la bonne direction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top