Создание веб-службы ASMX из файла WSDL
У меня есть файл WSDL, и я пытаюсь создать веб-службу, которая соответствует WSDL.
Я создал клиентов, использующих WSDL файлы, которые используют существующую службу, но я никогда не создавал веб-сервис, который должен был следовать определенному WSDL.
Я дошел до того, что использовал:
wsdl.exe mywsdl.wsdl /l:VB /serverInterface
Теперь у меня есть файл .vb, сгенерированный из этого WSDL. Однако я не уверен, что я должен делать с этим VB файлом. Похоже, что там есть открытый интерфейс, но нет класса, который реализует интерфейс. Он также имеет кучу частичных классов для типов в WSDL.
Я ожидал, что там будет какой-то заглушка, где я вставляю код для завершения вызовов службы. Я только создал простые веб-службы раньше, и ни один из них не использовал публичные интерфейсы, поэтому я не знаком с тем, что здесь происходит.
На этом этапе я не знаю, как использовать сгенерированный файл .vb и заставить его работать с файлом .asmx и для чего требуется дополнительное кодирование для завершения интерфейса.
Ответы
Ответ 1
Если вы уже создали интерфейсы, вам необходимо реализовать эти интерфейсы.
Просто создайте новый веб-сервис и добавьте созданный вами интерфейс, чтобы он наследовал от этого интерфейса. Visual Studio может автоматически генерировать заглушки для каждого метода в интерфейсе. Пометьте их атрибутом WebMethod и поместите в него некоторый код, который вернет некоторые данные/результаты теста.
Если у вас есть этот интерфейс (с некоторыми автоматически сгенерированными атрибутами):
public interface IRealWebService
{
string GetName();
}
Вы должны сделать новый сервис:
public class WebTestService : System.Web.Services.WebService, IRealWebService
{
#region IRealWebService Members
[WebMethod]
public string GetName()
{
return "It Works !!!!";
}
#endregion
}
Ответ 2
Все, что вам нужно сделать, это создать класс, который наследует интерфейс, сгенерированный WSDL.EXE, а затем реализовать методы из интерфейса.