Есть ли способ установить пространство имен веб-службы в конфигурации вместо кода? - PullRequest
3 голосов
/ 16 июня 2010

В настоящее время мы используем код <System.Web.Services.WebService(Namespace:="https://ourservice/")> для установки пространства имен. Может ли это быть сделано в web.config?Я посмотрел, но не могу найти где?

VS2008, веб-сервис ASMX.

Ответы [ 3 ]

6 голосов
/ 26 июня 2010

Самый важный вопрос не был задан: почему вы думаете, что хотите это сделать.

У большинства людей, которые задают этот вопрос, создается впечатление, что пространство имен связано с URL-адресом, по которому развернута служба. Они не имеют ничего общего друг с другом. Фактически, пространство имен может представлять собой URI, например «urn: services.yourcompany.com», который явно не является местоположением в Интернете.

0 голосов
/ 22 июня 2010

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

Если вы просто хотите сохранить его в центральном месте, вы можетеиспользуйте всегда используйте константу:

internal sealed class ServiceConstants {
   internal const string Namespace = "urn:example.com/~coolest/service/ever";
} 
[ServiceContract(Namespace=ServiceConstants.Namespace)]
[WebService(Namespace=ServiceConstants.Namespace)]
public sealed class MyService {}
0 голосов
/ 22 июня 2010

вы пробовали это?

 <Services>
    <asp:ServiceReference
       path="https://ourservice" />
  </Services>

другой вариант может заключаться в создании пары в файле web.config и чтении этого раздела с помощью класса ConfigurationManager.

<appSettings>
      <add key="OurService" 
      value="https://ourservice"/>
</appSettings>
...