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

求教:C#分析本地WSDL文件,并调用对应的WebService接口发送SOAP消息的处理方法。
背景:.Net2.0/C#下开发WinForm程序,模拟客户端向WebService服务端发送SOAP请求,现有一WSDL文件,期待:
1.C#能够根据本地的WSDL文件解析出该文件中包含的WebService调用方法;
2.第1步解析成功后,能够调用指定方法,向WebService服务端发送SOAP消息(SOAP消息的固定格式部分由调用方法产生,具体的消息内容我自己填充)。

不知道有没有朋友做过类似的代码,期望分享一下,我查了很久都没找到理想的代码,请朋友们赐教,谢谢。

PS:分数不够可以再加。

------解决方案--------------------
在C:\Program Files\Microsoft SDKs里面搜索svcutil,用它在命令行下生成代理类,方法如下:

 svcutil http://service/metadataEndpoint
- 通过正在运行的服务或联机元数据文档生成客户端代码。

 svcutil *.wsdl *.xsd /language:C#
- 从本地元数据文档生成客户端代码。

 svcutil /dconly *.xsd /language:VB
- 从本地架构文档生成 VisualBasic 形式的数据协定类型。

 svcutil /t:metadata http://service/metadataEndpoint
- 从正在运行的服务下载元数据文档

 svcutil myAssembly.dll
- 为程序集中的服务协定和关联类型生成元数据文档

 svcutil myServiceHost.exe /serviceName:myServiceName
- 为程序集中的服务以及所有关联的服务协定和数据类型生成元数据文档

 svcutil myServiceHost.exe /dconly
- 为程序集中的数据类型生成元数据文档

 svcutil /validate /serviceName:myServiceName myServiceHost.exe
- 验证服务承载

 svcutil /t:xmlserializer myContractLibrary.exe
- 为程序集中任何服务协定所使用的 XmlSerializer 类型生成序列化类型
------解决方案--------------------
分析WSDL,动态调用Web Service
http://topic.csdn.net/u/20090220/10/08c8ca6f-3733-40ff-840e-d6ca6894ab35.html