我遇到一种情况,在C#中,我通过OData API消耗数据.实际上,有两个不同的OData端点(两个不同的模型),其中一个是另一个的超集.
I have a situation where in C# I consume data via an OData API. Actually, there are two different OData endpoints (two different models), where one is a superset of the other.
我创建了两个不同的C#项目(A和B),其中包含与两个API交互的代码.该代码是使用插入OData Connected服务扩展自动生成的.结果,项目A和项目B都包含一个类 ODataService ,这是要与之交互的主要类型.根据我需要完整的API还是简化的API,我分别引用项目A或B.
I have created two different C# projects (A and B) which contain code to interact with the two API's. The code is automatically generated using Unchase OData Connected Service extension. As a result, project A and project B both contain a class ODataService, which is the main type to interact with. Depending on whether I need the full API or the reduced API, I reference project A or B correspondingly.
我想在单独的项目C中为 ODataService 类编写扩展方法,这样无论我选择引用项目A(完整API)还是项目,我都可以使用这些扩展方法.B(简化的API).
I would like to write extension methods for the ODataService class in a seperate project C, such that I can use these extension methods no matter if I choose to reference project A (full API) or project B (reduced API).
什么是一个好的方法?
推荐答案一种可能的解决方案是:
One possible solution would be: