在运行时动态调用Web服务

时间:2010-04-30 08:52:40

标签: c# web-services wsdl

因此,我们的应用程序需要支持动态调用在编译时未知的Web服务。因此,用户应该能够指定WSDL的URL,并为请求和回复参数指定一些数据绑定。

当谷歌搜索答案时,似乎这样做的方法是在运行时实际编译Web服务代理类,加载它,并使用反射调用方法。

我认为这似乎是一种相当笨重的方法,因为当我要动态地转换数据时,我并不需要一个强类型的类。动态编译代码以执行简单的操作,这似乎只是错误的方法。

将自己限制为SOAP协议,是否有任何C#库可以实现此协议的动态使用?我可以想象,可以从WSDL生成运行时键/值数据结构,可以用来指定请求消息,以及读取回复。然后,库应该能够将格式良好的SOAP消息发送到服务器,并解析回复,而无需程序员手动生成XML(至少不是头文件和其他管道)。

我似乎无法找到任何实际执行此操作的库。我想要做的事情是那么深奥,还是我只是在错误的地方搜索过?

谢谢,

Ulrik合作

2 个答案:

答案 0 :(得分:0)

我认为您需要反映未知网络服务的签名才能知道如何调用它。

但是,一旦知道需要调用什么,就可以在运行时使用javascript ajax调用来编译webservice代理。例如,您可以使用jquery.ajax()为未知的Web服务创建XMLHttpRequest(一旦知道要调用的内容)。

答案 1 :(得分:0)

我正在寻找这样的解决方案,似乎WSIF就是解决方案