wcf - 将 WCF 代理封装在静态类中

标签 wcf .net-3.5 proxy encapsulation

我正在设计一个 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"] 调用所有不同的代理。谁能帮我解决这个问题吗?

最佳答案

由于每个服务都实现不同的接口(interface),因此它必须是对象...除非您可以创建一个公共(public)基接口(interface),使代理继承该接口(interface),然后创建一个 List

为什么每个代理的类上不能只有一个属性?至少这样您就可以以强类型的方式访问代理。

关于wcf - 将 WCF 代理封装在静态类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465737/

相关文章:

winforms - 用户无法安装单击一次应用程序

asp.net - 发送Excel文件给客户

visual-studio-2008 - 获取具有一组特定子元素的项目(高级查询 - 可能吗?)

javascript - JS 代理拦截键和嵌套键不返回回退值

java - 如何使用 ByteBuddy 创建动态代理

.net - WCF 命名管道 : Across network? 真的吗?

wcf - WCF平台是否独立?

php - 如何在 PHP 中代理另一个页面

wcf - netsh - 在 Windows XP 上未找到以下命令错误

c# - WCF 派生的 DataContract 不继承基础 DataContract 的属性