Повторно использовать WebService, но с пользовательской конечной точкой - PullRequest
0 голосов
/ 01 ноября 2010

Я использую веб-службу с конечной точкой http://api.domain_a.com/ и использую Visual Studio . Я могу легко и просто сгенерировать прокси-класс для работы со службой.

alt text

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

В качестве примера

Iсгенерировать прокси-классы, добавив веб-ссылки в мой проект, но теперь для каждого запроса у меня есть имя пользователя , которое я получу в настройках пользователя (с указанием их URL), как я могу (если это возможно) сообщить сгенерированному прокси, что я использую домен http://domain_b.com/api вместо оригинала, который я использовал при добавлении веб-ссылок?

Нужно ли мнепозвонить в сервис вручную?Отправка и получение данных XML?или есть «переключатель», который я могу использовать для указания на новый URL?

1 Ответ

1 голос
/ 01 ноября 2010

Если вы используете .NET 2.0, каждый из этих прокси-классов должен иметь свойство URL.Просто обновите свойство URL, и прокси-сервер укажет на новый сервис.

Если вы используете WCF, то все становится немного сложнее, но не намного.Вам просто нужно изменить адрес конечной точки:

var service = new ServiceClient();
string url = "http://domain_b.com/api";
EndpointAddress newAddress = new EndpointAddress(url);
service.Endpoint.Address = newAddress;
...