Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有通用操作和类型的多个Web服务_C#_.net_Web Services_Wsdl - Fatal编程技术网

C# 具有通用操作和类型的多个Web服务

C# 具有通用操作和类型的多个Web服务,c#,.net,web-services,wsdl,C#,.net,Web Services,Wsdl,我收到了许多具有常见操作(登录、注销、插入、更新等)和常见类型(请求、响应、连接故障、数据容器)的WSDL。我发现的区别是目标命名空间和数据容器中传输的数据类型。有可能有一个服务客户端公开公共操作吗?只有当它们的接口和模式完全匹配时才有可能。它们没有,因为名称空间不同,所以没有 你为什么要那样做?但是,您可以创建一种包装器,在各种服务代理客户端上调用循环方法 编辑:我的意思是: public void Login(String username, String password) { _

我收到了许多具有常见操作(登录、注销、插入、更新等)和常见类型(请求、响应、连接故障、数据容器)的WSDL。我发现的区别是目标命名空间和数据容器中传输的数据类型。有可能有一个服务客户端公开公共操作吗?

只有当它们的接口和模式完全匹配时才有可能。它们没有,因为名称空间不同,所以没有

你为什么要那样做?但是,您可以创建一种包装器,在各种服务代理客户端上调用循环方法

编辑:我的意思是:

public void Login(String username, String password)
{
    _client1.Login(username, password);
    _client2.Login(username, password);
    _client3.Login(username, password);
}

您不想创建一个“通用”客户机,因为当该服务的签名更改时,它将无法与您尝试使用的服务之一通信。那么,您要做什么,创建第二个客户机?然后你又回到了原点。

理论上是的。。。虽然有效载荷的类型不同这一事实会造成相当大的问题。。。目标是什么?“统一代理”?是的,我想创建一个抽象的基础客户端。这是可能的,但你需要从头开始实现所有东西,尤其是因为它们在类型等方面不同。你能举一个包装器的例子吗?我不知道上面的代码如何工作,以及它应该如何帮助解决上述问题。然后我不知道你的问题是什么。更详细地解释它,也许用你现在拥有的代码以及你想要它是怎样的。实际上你知道,正如你上面所说的,我想创建一个通用客户机。多年来,服务提供商一直以相同的结构发布WSDL。如果有什么变化,我们以后再决定。