【发布时间】:2011-09-21 21:14:27
【问题描述】:
我正在设计一个 Web 服务,它将根据给定对象的属性(例如“请求”)调用不同的外部 Web 服务。对这些 Web 服务的引用是通过 Visual Studio 2008 中的“添加 Web 引用”菜单添加的,如您所知,该菜单为每个继承自 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"] 调用所有不同的代理。谁能帮我解决这个问题?
【问题讨论】:
标签: wcf .net-3.5 proxy encapsulation