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

时间:2015-09-19 00:23:23

标签: c# abstraction service-reference

我正在使用一个服务,其中有几个端点由子系统划分。所有系统都有一组标准对象,用于来回传递结构化数据。在给定的应用程序中,我使用七个可用端点中的三个。 ServiceAServiceBServiceC。建立每个连接都会返回EnvironmentVariableType的结构,但由于每个结构都来自不同的服务,因此C#认为它们是不同的类型。 ServiceA.EnvironmentVariableTypeServiceB.EnvironmentVariableTypeServiceC.EnvironmentVariableType

有没有办法抽象它们并将所有三个都视为相同的对象类型?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

如果您无法修改生成的服务代码以插入公共界面或使用相同的类型,您可以改为使用Impromptu Interface,这样您就可以获取每个调用的结果并生成它ActLike你定义的接口。它可以在Nuget中找到。