Я разрабатываю веб-сервис, который будет вызывать различные внешние веб-сервисы в соответствии со свойствами данного объекта (например, «запрос»).Ссылка на эти веб-службы добавляется через меню «Добавить веб-ссылку» в Visual Studio 2008, которая, как вы знаете, создает прокси-класс для каждой конечной точки, который наследуется от System.ServiceModel.ChannelBase<ISomeInterface>
(где ISomeInterface
- это конечная точка, определенная какWSDL конкретной службы).
Вопрос в том, что я хотел бы инкапсулировать все эти прокси в один статический класс ServiceManager
(например), содержащий, например, внутренний список всех прокси, поэтомучто, с одной стороны, все вызовы данной службы могут проходить через ServiceManager
, а не рассредоточены по основному приложению, и, с другой стороны, новые услуги, которые могут быть добавлены последними, могут быть сообщены ServiceManager
простым добавлением ссылки на новый прокси-класс.
Я думал о дизайне ServiceManager
как
public static class ServiceManager
{
#region Properties
public static Dictionary<string, TProxy> ServiceList { get; private set; }
#endregion
}
, но я не знаю, что мне следует заменить TProxy
натак что все различные прокси могут быть вызваны с помощью ServiceManager.ServiceList["ServiceName"]
.Может кто-нибудь помочь мне с этим?