Использование и вызов SOAP WebServices во время выполнения - клиент динамической веб-службы из файла WSDL

Требование:

Клиент должен предоставить WSDL веб-службы SOAP во время выполнения, т. Е. Выбрать файл WSDL из общей папки.Использовать WSDL, вызвать метод, выбранный клиентом, в пользовательском интерфейсе и обработать ответ.

Я не могу использовать MetadataExchangeClient, поскольку WSDL не будет размещен.

Реализация:

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();

Дорожные блоки:

Приведенный выше код не может извлечь конечные точки службы вообще. Итак, мне пришлось вручную создать конечную точку службы.Я не мог перечислить все методы, содержащиеся в указанном выше WSDL и связанных с ним входах / выходах в шаге (для использования в переменных operationName и operationParameters ниже)
object retVal = instance.GetType().GetMethod(operationName)
                        .Invoke(instance, operationParameters);   // Invoke

Я попытался жестко запрограммировать имя операции, проанализированное вручную из WSDL, но затем не получилось с параметрами. Ожидается сложный тип, содержащий иерархию, как показано ниже:

ContactInput -> Список Контактов -> Контакт -> Имя, Фамилия

Следующие шаги:

Если кто-то может помочь мне исправить контрольно-пропускные пункты, тогда я смогу перейти к вышеуказанному подходу.

Иначе я должен начать исследовать использование svcutil.exe во время выполнения

Спасибо, дев

Ответы на вопрос(1)

Ваш ответ на вопрос