WCF Web服务在内部调用第三方服务

时间:2014-03-11 16:30:26

标签: web-services wcf proxy-classes

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

当我们从第三方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;
            }
        }
    

1 个答案:

答案 0 :(得分:1)

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

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