Если я правильно понимаю, что вы спрашиваете, это сделать невозможно, потому что WebService
- это фактический скомпилированный класс, а WebMethod
- это фактический скомпилированный метод.
Метод GetWebResourceUrl делает то, что подразумевает имя, возвращает resource . Клиентский скрипт (Javascript) - это просто строковый ресурс, его не нужно выполнять на сервере, он просто отправляется клиенту в виде текста. Веб-сервисы (и их методы) должны иметь физическую конечную точку, способную отвечать на запросы клиентов и выполнять этот код.
Теоретически, если вы использовали WCF, вы могли бы определить URL-адрес конечной точки службы во время выполнения, потому что WCF отделяет конечную точку от поведения и определяет ее в определенном месте в вашем файле web.config. Это не позволит вам предоставить весь «сервис» в виде WebResource
, но позволит избежать необходимости жесткого кодирования URL. Если вы используете ASMX WebServices, то у вас даже нет этой опции, потому что ASMX использует файл разметки, похожий на страницу ASP.NET.
Если вы беспокоитесь о том, что URL-адрес может измениться, т. Е. Потому что вы развертываете этот веб-сайт на нескольких серверах / доменах, то лучше всего было бы настроить внешний URL-адрес в качестве параметра приложения. Таким образом, вам нужно всего лишь отредактировать файл web.config, чтобы изменить URL-адрес, используемый для ссылки на скрипт.