Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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# 如何从三个不同的服务中抽象出三个相同类型的对象?_C#_Abstraction_Service Reference - Fatal编程技术网

C# 如何从三个不同的服务中抽象出三个相同类型的对象?

C# 如何从三个不同的服务中抽象出三个相同类型的对象?,c#,abstraction,service-reference,C#,Abstraction,Service Reference,我正在使用一个服务,该服务具有由其子系统划分的多个端点。所有系统都有一组标准对象,用于来回传递结构化数据。在给定的应用程序中,我使用七个可用端点中的三个服务A,服务B和服务C。建立到每个服务器的连接将返回一个环境变量类型的结构,但由于每个服务器都来自不同的服务,C#将它们视为不同的类型服务A.EnvironmentVariableType,服务B.EnvironmentVariableType和服务C.EnvironmentVariableType 有没有办法将它们抽象出来,并将这三个对象视为相

我正在使用一个服务,该服务具有由其子系统划分的多个端点。所有系统都有一组标准对象,用于来回传递结构化数据。在给定的应用程序中,我使用七个可用端点中的三个<代码>服务A,
服务B
服务C
。建立到每个服务器的连接将返回一个
环境变量类型的结构
,但由于每个服务器都来自不同的服务,C#将它们视为不同的类型<代码>服务A.EnvironmentVariableType,
服务B.EnvironmentVariableType
服务C.EnvironmentVariableType


有没有办法将它们抽象出来,并将这三个对象视为相同的对象类型?

您需要通过接口创建适配器层。
从该接口派生您自己的类,每个类访问一个服务,该服务将服务对象或类型转换为您的应用程序本地类型。

如果您无法修改为服务生成的代码,以插入公共接口或使用您可以改为使用的相同类型,则允许您获取每次调用的结果并让它像你定义的界面一样。它在Nuget中可用。

您能创建一个由三(七)个端点共享的
接口吗?端点的类型是相同的,还是只有一些常见的类型?在前一种情况下,您只能引用项目中的一个端点,并通过传递适当的URL(我很久没有使用服务引用了,但我很确定这是可能的)创建多个客户端类实例CommuSoft-我无法控制远程系统,因此,我不相信有一种方法可以让我创建一个通用的接口方法——我不确定相同类型和通用类型之间的区别。这些服务都有一个EnvironmentVariableType结构,它们在各个方面都是相同的。