日期:2014-05-17  浏览次数:21201 次

winfrom 动态调用WebService
我现在需要动态调用WebService接口,因为别人给我的接口名称都是(域名 +/webservice/Area.asmx/GetData
),接口名称都是不一样的,而我需要根据每个域名获取xml信息,网上找了动态调用的代码。但好像是web程序的。因为其中有一个类是ServiceDescription,需要添加using System.Web.Services.Description; 命名空间,winfrom中时没有的。请问高手在winform中怎么动态调用WebService。

------解决方案--------------------
http://topic.csdn.net/u/20090220/10/08c8ca6f-3733-40ff-840e-d6ca6894ab35.html
------解决方案--------------------
如果你是通过 Web 引用的方式的话 动态设置如下

WinForm 作则Web引用右键有一个属性,可以设置静态还是动态。
然后会生成一段XML 在 app.config中 ,在里面改好地址就可以了。
如果在程序启动的时候,想叫更改地址生效,可以用 cofigrationManager.RerashSection(string section)方法。用太进行强制刷新。

Windows phone 中 如果用到 需要对 自动生成的代理类中的 构造函数的 this.Url进行 切入点赋值。
但是前提也一定是 动态的。你可以吧地址放在一个可以配置的地方。

自动生成的代理类在引用的 结构中 ,以树的形式隐藏,3个XML 架构 和 cs 类。
------解决方案--------------------
winform中也可以添加System.Web.Services引用的。

C#不添加引用,动态调用webservice

你也可以用HttpWebRequest发送请求的方式去调用。
------解决方案--------------------
试下这个吧
http://blog.csdn.net/mybvc/article/details/7308761
------解决方案--------------------
如果你调用的 是 JAVA 的 确定不是 struct 的架构的那你要 也没有 SOAPAction 的 不能用 HttpWebRequest 和 HttpWebResponse

如果是 封装的 例如 .do 或 .action 或是 c# 的 .ascx 的你可以直接用 
HttpWebRequest 和 HttpWebResponse
------解决方案--------------------
带式前提,你一定要 添加 ,System.Web.Services 这个DLL,少了它可是不行的,
------解决方案--------------------
.ascx 错了,是 .asmx
------解决方案--------------------
在项目中。
1.右击引用-添加服务引用。把WebService的地址写上:xxxxx.asmx
2.命名空间默认是ServiceReference1,在代码中写
C# code
ServiceReference1.Test01 test=new  ServiceReference1.Test01 ();