Заводской шаблон для тестовых и живых веб-сервисов - PullRequest
0 голосов
/ 11 сентября 2010

Можно ли использовать веб-службы в фабричном шаблоне, учитывая, что код генерируется автоматически, и я не хочу его изменять (например, для добавления базового класса)?

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

[Редактировать]
Я использую C # 3.

1 Ответ

1 голос
/ 11 сентября 2010

Если вы используете C # и SOAP, вы можете изменить место назначения во время выполнения:

var webSvc = new WebServerObjectName();
webSvc.Url = "http://examples/com/foo.asmx"; 

//or pull from .config, etc.  
webSvc.Url = ConfigurationManager.AppSettings["WebServiceUri"].ToString();

//make the call to the web method
var custs = webSvc.GetCustomerList();

Поток будет:

  • во время разработки, сделайте веб-ссылку. Установите контракт и код для него (входные и выходные параметры). Вам нужно будет сделать это только один раз, если контракт остается прежним.
  • во время выполнения измените URL / URI / цель веб-службы. Очевидно, что он должен иметь ту же сигнатуру контракта / параметра / метода, иначе вызов завершится неудачно во время выполнения.
  • позвонить
...