Звоните на веб-сервис в блоке встроенного кода asp.net - PullRequest
1 голос
/ 18 июня 2009

Можно ли вызвать веб-сервис из блока встроенного кода в ASP.NET без добавления веб-ссылки? Если да, можете ли вы предоставить инструкции?

Ответы [ 3 ]

1 голос
/ 18 июня 2009

Добавить веб-ссылку в другой проект C # (например, консольное приложение). Затем переключитесь на «показать все файлы». Вы найдете скрытый файл .cs, который содержит действительный прокси-сервер веб-службы, созданный для вас. (Есть также инструмент командной строки, который делает то же самое, но я забыл название)

Вы можете скопировать сгенерированный класс в ваш .aspx в блок <script runat="server">.

Хотя я не знаю, для чего вам это действительно нужно;) Разве у вас нет доступа к исходному коду веб-приложения?

Другое решение - создать .NET dll для веб-прокси, а затем динамически загрузить эту сборку, используя Assembly.Load(). Динамический вызов методов не очень приятен.

1 голос
/ 18 июня 2009

В целом встроенный код может выполнять все, что может делать код, стоящий за кодом, код за кодом просто чище и разделяет файлы.

Сначала необходимо включить правильные пространства имен, которые были сгенерированы для вас при создании прокси-сервера WebService.

Код включения в пространство имен немного отличается в случае встроенного кода, вот пример

<%@ Import Namespace="System.IO" %>

Если вы хотите почитать о различиях, у ужаса кодирования есть отличная статья об этом

0 голосов
/ 18 июня 2009

Если у вас есть файл кода веб-службы (* .cs) в папке App_Code, вам не понадобятся какие-либо ссылки, использование и т. Д. Однако, если веб-служба не является локальной в вашем проекте или если у вас нет код в отдельном файле .cs в папке App_Code, вам понадобится веб-ссылка.

Это из моего опыта, и я только что использовал один из веб-методов моего веб-сервиса как таковой:

<%= new MyWebService().MyWebMethod(); %>

Надеюсь, это поможет.

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