чтение файла WSDL в формате XML - PullRequest
0 голосов
/ 14 октября 2011

Я пытаюсь прочитать страницу WSDL, похожую на эту http://schemas.xmlsoap.org/wsdl/ Я пытаюсь получить информацию об операциях, типах данных, входных и выходных данных и пытаюсь сделать все это в C #.Это как чтение файла XML?Здесь есть учебник, если да, можете ли вы указать мне правильное направление.

Ответы [ 4 ]

1 голос
/ 14 октября 2011

Если у вас есть URL-адрес местоположения файла WSDL, вы можете перейти к нему с помощью браузера, и он покажет вам содержимое (XML). Вы также должны иметь возможность добавить его в качестве (службы) ссылки в проекте Visual Studio (щелкните правой кнопкой мыши Ссылки -> Добавить ссылку на службу).

После добавления в качестве ссылки на проект вы сможете использовать обозреватель объектов для просмотра всех методов, свойств и т. Д. WSDL - довольно старая школа, поэтому в Интернете имеется множество ссылок на него.

1 голос
/ 14 октября 2011

WSDL - это действительно формат XML.Вот официальное определение для версии 1.1:

http://www.w3.org/TR/wsdl

0 голосов
/ 15 июня 2016

вызовите ReturnOperationsParameters с путем WSDL, и у вас будет все необходимое

 public static void ReturnOperationsParameters(string fileName)
    {

        var reader = new XmlTextReader(fileName);
        var serviceDescription = ServiceDescription.Read(reader);
        BindingCollection bindColl = serviceDescription.Bindings;
        PortTypeCollection portTypColl = serviceDescription.PortTypes;
        MessageCollection msgColl = serviceDescription.Messages;
        Types typs = serviceDescription.Types;


        foreach (Service service in serviceDescription.Services)
        {
            String webServiceNmae = service.Name.ToString();

            foreach (Port port in service.Ports)
            {
                string portName = port.Name;
                string binding = port.Binding.Name;
                System.Web.Services.Description.Binding bind = bindColl[binding];
                PortType portTyp = portTypColl[bind.Type.Name];
                foreach (Operation op in portTyp.Operations)
                {
                    var operatioList = new SoapData();
                   // _soapdata = new SoapData();
                    OperationMessageCollection opMsgColl = op.Messages;
                    OperationInput opInput = opMsgColl.Input;
                    string inputMsg = opInput.Message.Name;
                    Message msgInput = msgColl[inputMsg];
                    MessagePart part = msgInput.Parts[0];
                    operatioList.OperationName = op.Name;


                    operatioList.NameSpace = part.Element.Namespace;

                    TreeItemSource.Add(operatioList);

                }
            }
        }

    }
}

public class SoapData
{
    public int Id { get; set; }
    public string RequestXml { get; set; }
    public string ResponseXml { get; set; }
    public string NameSpace { get; set; }
    public string OperationName { get; set; }
}
0 голосов
/ 14 октября 2011

Чтобы добавить ссылку на службу, щелкните правой кнопкой мыши папку «Ссылки» и используйте «Добавить ссылку на службу». Дайте ему URL-адрес для WSDL, и он создаст набор прокси-классов, которые вы можете вызывать.

Не используйте «Добавить веб-ссылку». Это устарело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...