用于测试和实时Web服务的工厂模式

时间:2010-09-11 14:54:56

标签: web-services factory-pattern

可以在工厂模式中使用Web服务,因为代码是自动生成的,我不想改变它(例如添加基类)?

执行此操作的原因是,如果您有两个相同的Web服务,但一个用于测试数据,一个用于实时数据,并且您希望根据代码运行的环境在服务之间切换。< / p>

[编辑]
我正在使用C#3。

1 个答案:

答案 0 :(得分:1)

如果您正在使用C#和SOAP,则可以在运行时更改目标:

var webSvc = new WebServerObjectName();
webSvc.Url = "http://examples/com/foo.asmx"; 

//or pull from .config, etc.  
webSvc.Url = ConfigurationManager.AppSettings["WebServiceUri"].ToString();

//make the call to the web method
var custs = webSvc.GetCustomerList();

流程将是:

  • 在设计时,进行网络参考。建立合同,并为其编写代码(输入和输出参数)。只要合同保持不变,您只需要制作一次。
  • 在运行时,更改Web服务的URL / URI /目标。显然它必须具有相同的contract / params / method签名,否则调用将在运行时失败。
  • 拨打电话