日期:2014-05-18  浏览次数:20845 次

帮我看看这段小代码怎么写?
我有一个webservice装在10台不同web机器上。配置如下:
web.config 
.... 
<appSettings> 
<add key="web1.Service" value="http://192.168.1.1/Service.asmx"/> 
<add key="web2.Service" value="http://192.168.1.2/Service.asmx"/> 
<add key="web3.Service" value="http://192.168.1.3/Service.asmx"/> 
.........
</appSettings> 
.... 
其实在这10台web机上的webservice是完全一样的。

在程序中我想动态调用,怎么写个小函数实现下面的功能,怎么写?
==============
int i=外界接受变量;
if(i==1)
web1.Service().helloworld();
elseif(i==2)
web2.Service().helloworld();
elseif(i==3)
web3.Service().helloworld();
......
else
web10.Service().helloworld();
或者
string str;
if(i==1)
str=web1.Service().doit(args,args2);
elseif(i==2)
str=web2.Service().doit(args,args2);
elseif(i==3)
str=web3.Service().doit(args,args2);
......
else
str=web10.Service().doit(args,args2);
================

我想用个fun来处理这么多if和else
public xxx fun(int i)
{
这个函数要根据 传入值i来调不同的webxxx.Service(),还要带上其调用的方法名和参数 有返回值的也要能接受到。
}


------解决方案--------------------
应该没必要这么复杂吧, 命名空间一样的情况下, 只要修改 WS代理类的uri属性就可以实现了

这样就不不同的对象简化为不同变量值之前的case了