我正在使用一个服务,其中有几个端点由子系统划分。所有系统都有一组标准对象,用于来回传递结构化数据。在给定的应用程序中,我使用七个可用端点中的三个。 ServiceA
,ServiceB
和ServiceC
。建立每个连接都会返回EnvironmentVariableType
的结构,但由于每个结构都来自不同的服务,因此C#认为它们是不同的类型。 ServiceA.EnvironmentVariableType
,ServiceB.EnvironmentVariableType
和ServiceC.EnvironmentVariableType
。
有没有办法抽象它们并将所有三个都视为相同的对象类型?
答案 0 :(得分:1)
您需要通过界面创建适配器层。 从此接口派生自己的类,每个类访问一个服务,将服务对象或类型转换为应用程序本地类型。
答案 1 :(得分:1)
如果您无法修改生成的服务代码以插入公共界面或使用相同的类型,您可以改为使用Impromptu Interface,这样您就可以获取每个调用的结果并生成它ActLike
你定义的接口。它可以在Nuget中找到。