首页 新闻 会员 周边

关于webservice的参数问题

0
悬赏园豆:30 [已关闭问题] 关闭于 2012-12-26 08:56

我有两个webservice

服务1
public string HelloWorld()
{
    return "Hello World";
}
服务2
 public string HelloWorld(string name)
 {
     return "Hello World:"+name;
 }

在我的程序里已经添加服务1的引用,

现在我用下面的方法想实现动态调用服务2的方法

 1 private void Form1_Load(object sender, EventArgs e)
 2 {
 3     ServiceReference1.WebService1SoapClient client = 
 4         new ServiceReference1.WebService1SoapClient(
 5     "WebService1Soap", "http://localhost:2769/WebService2.asmx"
 6    );
 7     client.HelloWorldCompleted += 
 8         new EventHandler<ServiceReference1.HelloWorldCompletedEventArgs>(client_HelloWorldCompleted);
 9     client.HelloWorldAsync("aa");
10 }
11 
12 void client_HelloWorldCompleted(object sender, ServiceReference1.HelloWorldCompletedEventArgs e)
13 {
14     MessageBox.Show(e.Result);
15 }


问题是,我能够访问到服务2的方法,

但是我的参数却传不过去,我想请教怎么样把这个参数传过去,还是这种方法根本就行不通动态调用服务2的方法?还有就是WebService1SoapClient构造函数的那几个参数的含义我也不大清楚,我是根据appconfig猜他们的含义,所以请各位前辈指导下,先谢谢了

一抹、思乡泪的主页 一抹、思乡泪 | 初学一级 | 园豆:48
提问于:2012-12-25 11:07
< >
分享
所有回答(3)
0

契约不一致,你应该把 WebService1Soap 改成 WebService2Soap (这是自动生成的配置文件和代理类的标识),也就是说客户端用Service1的WSDL来构建请求,让后发给了 Service2,因为你的 Service1的请求不包含 name 参数,自然 Service2 不会收到此参数。

Launcher | 园豆:45045 (高人七级) | 2012-12-25 11:23

@一抹、思乡泪: 老大,你能不能仔细的读我写的文字—— (这是自动生成的配置文件和代理类的标识),除了配置文件,还有自动生成的代理类。你不明白我的意思,就请你先去把SOAP,WSDL,代理类的概念搞清楚了再来问问题,否则就是我直接给你写代码,帮你把工作做了。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-12-25 13:05
0
client.HelloWorldAsync("aa");
你只能提示这边没有警告,或者是报错?
chenping2008 | 园豆:9836 (大侠五级) | 2012-12-25 14:35
0

楼上说的好啊,这个本来就不是太大问题,自己找些资料调试下,应该能解决。给你提供的只是一个思路。

伏草惟存 | 园豆:1420 (小虾三级) | 2012-12-25 15:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册