我有一个C#客户端应用程序,我需要使用两个托管在外部webMethods环境中的SOAP Web服务,它们公开相同的功能(相同的名称,相同的参数和数据类型),即
Web服务1 - ManualLoadProduction
功能1 - LoadMontlyData(字符串月份)
功能2 - LoadYearlyData(string Year)
Web服务2 - ManualLoadConsumption
功能1 - LoadMontlyData(字符串月份)
功能2 - LoadYearlyData(string Year)
我在C#解决方案中添加了两个Web服务的Web引用。我可以单独调用这些函数,但是,我需要构建一个分层的解决方案。我应该如何设计/实施解决方案
答案 0 :(得分:2)
您有一个可以在整个应用程序中使用的界面。这允许消费代码依赖于合同而不是特定的实现。
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
}
}