使用字符串和对象调用soap客户端的方法

时间:2015-02-01 08:54:18

标签: c# web-services soap

我正在使用一个外部开源项目,它为我提供了使用它提供的UI创建的计算服务。

项目会自动创建web-service个端点,我想通过我的应用程序使用这些端点。

我的问题是我无法干扰此过程。当我选择部署项目时,这是一个为我创建服务的黑盒子。

每个服务都有一堆不同的逻辑“私有方法”,这些方法在自动创建的wsdl中公开。

如果我可以自己创建服务,我会创建一个带有一个名为Process的公开方法的接口,该方法将有一个通用输入请求参数和一个通用响应,如:

public GeneralResponse Process(GeneralRequest request);

我想在我的应用程序中创建一个通用的输出点,它传递两个参数:

1.Endpoint Url将请求发送到。
2.Generic request作为输入参数。

我正在使用C#,使用服务的最简单方法就是添加service-reference,创建client并调用所需方法。
由于我不想为每个服务引用添加客户端,我将添加一个随机的客户端,更改客户端的端点地址并拍摄request

这种方法的问题在于生成的client会暴露它的“私有方法”,我不希望团队中的其他程序员意外地调用它们。

底线:

有没有优雅的方法来创建Generic soap client并使用字符串调用方法?与使用Invoke时调用reflection方法的方式类似?

这样的事情:

GenericRequest req = GetRequest();
SoapClient client = new SoapClient(endpointUrl);
GenericResponse res = client.Invoke("Process", req) as GenericResponse;

0 个答案:

没有答案
相关问题