【问题标题】:WCF web service calling 3rd party service internallyWCF Web 服务在内部调用第 3 方服务
【发布时间】:2014-03-11 16:30:26
【问题描述】:

我的项目当前目标是为来自服务或数据库的所有数据检索创建一个一站式商店。因此,我们使用存储库模式创建了一个 WCF 解决方案,它将方法公开给调用客户端,并在内部调用第三方服务或数据库来获取数据。

当我们从第三方 API 获取数据时,数据在代理类中返回,我们碰巧要处理具有许多嵌套类和许多属性的 BIG 对象。在如上所述的这种情况下,最好的做法是:

  1. 由于这些代理类对我的情况来说很大,所以在整个项目中使用代理类并返回代理对象。
  2. 创建本地业务对象,将第三方业务对象解析为本地对象并返回我的本地对象:

    public class ThirdPartyRepository
        {
            public MyData GetData()
            {
                //Call third party service method
                ThirdPartyProxyClass proxyClass = ThirdPartyServiceReference.GetData();
    
                //Parse object to my object
                MyData data = new MyData() {
                  //Parse properties
                  ID = proxyClass.ID
                };
    
                return data;
            }
        }
    

【问题讨论】:

    标签: web-services wcf proxy-classes


    【解决方案1】:

    您正在实现适配器模式。在这种情况下,最好有自己的业务对象来将您的消费者与后端存储库分离。这样,如果某些外部服务更改了 API,则只有一个地方需要更改代码。您还可以完全控制返回数据的内容和方式。

    http://en.wikipedia.org/wiki/Adapter_pattern

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2013-03-03
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多