Consommer et d'Invoquer SAVON Services web au moment de l'Exécution de Dynamique de client de Service Web à partir du fichier WSDL

Exigence:

  1. Client à la SAVON Web service WSDL lors de l'exécution j'.e choisir le fichier WSDL à partir d'un emplacement du partage de fichiers.
  2. Consommer le WSDL, et l'appel à la Méthode choisie par le Client sur l'INTERFACE utilisateur et de gérer la réponse.

Je ne peux pas utiliser le MetadataExchangeClient que WSDL ne sera pas accueilli.

Mise en œuvre:

var serviceDescription = ServiceDescription.Read(@"C:\Contacts.WSDL");
var metadataSection = new MetadataSection
{
Dialect = MetadataSection.ServiceDescriptionDialect,
Identifier = serviceDescription.TargetNamespace,
Metadata = serviceDescription
};

var metadataSections = new List<MetadataSection> {metadataSection};
var metadatSet = new MetadataSet(metadataSections);
var wsdlImporter = new WsdlImporter(metadatSet);
var services = wsdlImporter.ImportAllEndpoints();

Route Blocs:

  1. Le code ci-dessus pourrait ne pas extraire les points de terminaison de service à tous. Donc, j'ai eu à le créer manuellement un point de terminaison de service.
  2. Je ne pouvais pas la liste de toutes les méthodes contenues dans le ci-dessus WSDL et de ses Entrées/Sorties dans l'étape (pour être utilisé dans la variable operationName et operationParameters ci-dessous)
object retVal = instance.GetType().GetMethod(operationName)
                        .Invoke(instance, operationParameters);   //Invoke

J'ai essayé par le codage en dur le nom de l'opération, manuellement analysées à partir du WSDL, mais il a échoué à l'paramètres. Il s'attend à un type complexe contenant la hiérarchie en tant que ci-dessous :

ContactInput --> ListOfContacts --> Contact --> FirstName, LastName

Prochaines Étapes:

Si quelqu'un pouvait m'aider à résoudre les obstacles, alors je peux procéder à l'approche ci-dessus.

Autre personne, je dois commencer des recherches sur l'utilisation de l'svcutil.exe au moment de l'exécution

Grâce,
Dev

OriginalL'auteur Dev | 2014-11-26