1

我有一个 C# 客户端应用程序,我需要使用两个托管在外部 webMethods 环境中的 SOAP Web 服务,它们公开相同的功能(相同的名称、相同的参数和数据类型),即

Web 服务 1 - ManualLoadProduction

功能 1 - LoadMontlyData(字符串月份)

功能 2 - LoadYearlyData(字符串年份)

Web 服务 2 - ManualLoadConsumption

功能 1 - LoadMontlyData(字符串月份)

功能 2 - LoadYearlyData(字符串年份)

我在我的 C# 解决方案中为这两个 Web 服务添加了 Web 参考。我可以简单地单独调用这些函数,但是,我需要构建一个分层的解决方案。我应该如何设计/实施解决方案

4

1 回答 1

4

您有一个可以在整个应用程序中使用的界面。这允许消费代码依赖于合约而不是特定的实现。

public interface IServiceWrapper{

    Data  LoadMontlyData(string Month);
    Data LoadYearlyData(string Year);
}

这是 ManualLoadProduction 包装器的一种实现。包装服务方法允许您围绕服务调用包装其他功能,例如额外的验证或对象映射。

public class ManualLoadProductionWrapper: IServiceWrapper{

      public Data LoadMontlyData(string Month){
         //implementation calls service method
      }

       public Data LoadYearlyData(string Year){
         //implementation calls service method
      }
}

public class ManualLoadConsumption: IServiceWrapper{

      public Data LoadMontlyData(string Month){
        //implementation calls service method
      }

      public Data LoadYearlyData(string Year){
       //implementation calls service method
      }
}
于 2013-02-13T12:42:43.120 回答