【发布时间】:2009-02-04 01:32:21
【问题描述】:
假设我有以下(相当常见的)模型
客户端调用 Web 服务请求 -> 请求添加到服务器队列 -> 服务器通过 Web 服务调用 3rd 方应用程序 -> 3rd 方应用程序通知服务器事件处理已完成 -> 服务器通知客户端请求已完成
我想知道的是“服务器通过 Web 服务调用 3rd 方应用程序”阶段。第 3 方应用程序公开了在应用程序内部配置的 Web 服务方法。例如,我可能会在这个应用程序中创建一个名为“MultiplyByTwo”的方法。然后我单击“GO”,它会使用 BeginCalculateMultiplyByTwo 和 EndMultiplyByTwo 等方法生成一个 Web 服务(使用 IAsync 模型)。这很棒。
现在我正在创建一个队列对象,以便多个客户端可以请求此服务并让服务器将它们排队以进行顺序执行。所以这个队列对象将有一个类似 runNext() 的方法,它将调用 3rd 方应用程序上的 Web 服务。这很好,只要我知道被调用的方法的名称(在这种情况下为 BegingCaculateMultiplyByTwo),但如果我想动态更改方法的名称怎么办?
所以在第 3 方应用程序中,我更改了我的 Web 服务方法并将其命名为“MultiplyByThree”。这将公开 BeginMultiplyByThree 和其他一些具有可预测命名方案的方法。如何设置我的类以动态调用我还不知道名称的方法?
理想情况下,如果我可以在 app.config 文件中设置要调用的方法的名称,那就太好了。
我想这是我可以通过反射实现的吗?
【问题讨论】:
-
如何调用第三方应用的网络服务?用代理?通过手动构造 SOAP 消息?
标签: c# web-services