Как добавить ссылку на публичную структуру Webservice в приложении - PullRequest
1 голос
/ 15 июня 2010

Первоначально опубликовано: http://www.experts -exchange.com / Программирование / Языки / C_Sharp / Q_21355401.html

У меня есть решение, содержащее два проекта: проект веб-сервисаи проект веб-приложения, в котором есть веб-ссылка на проект веб-сервиса (проект веб-приложения - просто тестовый пример).

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

Не правда ли, что когда вы добавляете веб-ссылку на веб-сервис, вы по существу получаете «объект»версия веб-сервиса?В этом случае я ожидаю, что смогу получить доступ к любым общедоступным членам веб-службы.

Я ранее создал службы, которые ссылаются на связанные проекты, и когда я использую службу, я имею доступ к ссылочным проектам и их участникам.,Почему у меня нет доступа к файлу класса, который находится в том же проекте, что и служба?

Пространство имен для веб-службы (asmx) и файл класса (cs) совпадают.В веб-приложении у меня есть оператор использования для веб-ссылки.У меня действительно есть доступ к веб-методам из asmx, только не связанные файлы классов и их открытые члены ...

У меня та же проблема, кто-то может сказать мне, чторешение?Я хотел бы отправить список параметров структуры, публично доступных на WebService.

1 Ответ

1 голос
/ 15 июня 2010

Прежде всего, вы должны использовать WCF вместо веб-сервисов ASMX для всех новых разработок.

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

Вы получите класс, кстати, а не структуру. Понятие "структура" не распространяется через границы служб.

...