两种不同的扩展方法 类

Extension methods for two different classes

我有一种情况,在 C# 中,我通过 OData API 使用数据。实际上,有两个不同的 OData 端点(两个不同的模型),其中一个是另一个的超集。

我创建了两个不同的 C# 项目(A 和 B),其中包含与两个 API 进行交互的代码。使用 Unchase OData Connected Service extension 自动生成代码。因此,项目 A 和项目 B 都包含一个 class ODataService,这是主要的交互类型。根据我需要完整的 API 还是缩减的 API,我相应地引用了项目 A 或 B。

我想在单独的项目 C 中为 ODataService class 编写扩展方法,这样无论我是否选择引用项目 A(完整 API) 或项目 B (减少 API).

对此有什么好的方法?

一个可能的解决方案是:

  1. ODataService-s 创建接口(例如:IODataService
  2. 为实现接口的服务创建部分 类:
    (例如:public partial class ODataService1: IODataService {...}
  3. IODataService
  4. 创建扩展方法