我正在尝试向 C# 中的现有代码添加功能并调用 api,例如 MyAPI(arg1,arg2)。我有一个接口,可以说是 IProvider,它有一组客户端 API 定义。我有两个客户端代理类——Provider 和 ProviderNew,它们有一些 API 的包装器实现——在我们调用的每个包装器函数(用于 API)中,最终调用托管在远程服务器上的服务 API。仅在 ProviderNew(Not Provider) 项目类下 - 在服务引用下 - 我看到 MyAPI 在 WSDL、xsd 文件中被定义(或自动生成,因为我不确定这些文件是如何创建的)。除了这些之外,我还看到了一些单独的 ProviderNew 的 references.cs 文件,其中包含一些 MyAPI 的定义。这些事情清楚地表明只有 ProviderNew 实现了 MyAPI 的客户端代理代码。
我现在的问题是,由于 IProvider 接口 MyAPI 签名,系统期望实现类(Provider 和 ProviderNew)都实现 MyAPI 的客户端代码,但事实并非如此,因为只有 ProviderNew 为 MyAPI 添加了定义。当我尝试单独在 Provider.cs 中实现 MyAPI 客户端代码时,我看到一条错误消息 -
Provider.ProviderServiceReference.ProviderServiceClient 不包含“MyAPI”的定义,并且找不到接受“Provider.ProviderServiceReference.ProviderServiceClient”类型的第一个参数的扩展方法“MyAPI”(您是否缺少 using 指令或程序集引用?) MyPath..\Provider.cs
但是,当我离开而不在 Provider.cs 中实现它们时,我看到一个错误(这是一个经典案例,即实现接口的每个类(如果有多个实现)都应该单独实现其所有功能,而不是子集的功能。)
'Provider' 没有实现接口成员 'IProvider.MyAPI(int, int)' MyPath ...Provider.cs
我已尽力使这一点尽可能清楚,让我知道更清楚。
我该如何进行?有什么建议么 ?