Ошибка при добавлении ссылки на службу в Visual Studio через WSDL - PullRequest
1 голос
/ 16 июня 2010

Мне дали WSDL со всеми запросами и ответами на методы и всеми объектами, которые мне понадобятся для создания нескольких веб-методов.

Я успешно добавил WSDL в качестве «справочной службы», и я могу видеть методы и структуры и создавать их экземпляры. Кажется, все есть. Но у меня есть проблема: проект не будет собираться после добавления WSDL. Вот сообщение об ошибке, которое я получаю, когда Visual Studio пытается скомпилировать Reference.cs:

"Ошибка 2 Имя типа« ServiceReference1 »не существует в типе 'WSPELab.WSPELab' C: \ Users \ JJ \ Documents \ Visual Studio 2008 \ Projects \ WSPELab \ WSPELab \ Service References \ ServiceReference1 \ Reference.cs 21 111 WSPELabSLN

Возможно ли, что я получаю это сообщение об ошибке из-за ошибки пространства имен с моей стороны?

Наконец, еще один вопрос: могу ли я использовать структуры, которые в нем содержатся, с добавленным WSDL? Или они просто "списки" для меня, чтобы реализовать?

1 Ответ

3 голосов
/ 16 июня 2010

WSDL - это машиночитаемый файл, описывающий методы и типы, предоставляемые веб-службой.Многие IDE, включая Eclipse и Visual Studio, могут импортировать их и создавать классы языка программирования, которые соответствуют определениям, данным в WSDL.

Например, импорт WSDL в проекте Visual Studio C # создаст Reference.csфайл, который содержит эти определения.Вы должны создавать и вызывать эти определения так же, как и для любых классов.

var webServiceReference = new WsdlNamespace.ClassDefinedInWsdl();
WsdlNamespace.ParamClassDefinedInWsdl dataToGet;
WsdlNamespace.ReturnCodeTypeDefinedInWsdl retCode = webServiceReference.MethodDefinedInWsdl("params expected by method", out dataToGet);
if (retCode == WsdlNamespace.ReturnCodeValueMeaningAllIsWell)
{
    // use properties of dataToGet
}

Чтобы получить более подробную информацию, потребуется показать нам фактический WSDL.

...