2009-12-01 2 views
2

Salutations, Je souhaite écrire un test unitaire pour m'assurer que nos services Web n'ont pas modifié le WSDL de la dernière version publiée connue. La raison en est que toute modification d'un objet dans le WSDL entraînera l'échec des clients utilisant Apache Axis. Même si tout ce que vous faites est d'ajouter une propriété non-requred. Ainsi, s'il y a un changement, le développeur doit être averti car la gestion du produit devra communiquer aux clients à propos de la modification afin qu'ils soient prêts à recompiler leurs talons lors de la publication du nouveau WSDL.Comment générer un WSDL en C# sans faire de requête http

J'espérais avoir quelque chose comme ceci:

[Test] 
public void TheWSDLHasNotChanged(){ 
    XmlDocument currentWSDL = SomeMysteryServiceIDontKnowAbout.GetWSDLForWebServiceClass(typeof(UserService)); 

    XmlDocument existingWSDL = new XmlDocument().Load("ExistingWsdl.wsdl"); 
    Assert.That(currentWSDL, Is.Equal.To(existingWSDL)); 
} 

Pour des raisons évidentes, je ne veux pas faire une demande à un serveur Web (qui peut ou ne peut pas être même en cours d'exécution lors de l'exécution des tests unitaires).

+0

double possible: http://stackoverflow.com/questions/1309861/are-there-any-tools-to-build-asmx-proxies-from-server-side-assemblies/1827650 –

Répondre

2

J'ai créé un outil qui peut générer un fichier WSDL à partir d'un assemblage C# compilé (dll) qui contient un ou plusieurs WebServices. Normalement vous avez besoin d'un service courant (IIS ou autre) qui héberge le .asmx pour que vous puissiez récupérer le WSDL en utilisant /MyWebService.asmx?wsdl

Cet outil génère un fichier WSDL en utilisant la réflexion pour récupérer toutes les informations d'un assemblage (dll).

Téléchargez et sourcecode se trouvent à http://wsdlgenerator.codeplex.com

Tous les trucs et astuces sont les bienvenus!

--Stef

Questions connexes