C# の既存のコードに機能を追加して、MyAPI(arg1,arg2) などの API を呼び出そうとしています。クライアント側の API 定義のセットを持つ IProvider としましょう。API 用のラッパー実装を持つ Provider と ProviderNew の 2 つのクライアント プロキシ クラスがあります。これらの各ラッパー関数 (API 用) 内で、最終的にリモート サーバーでホストされているサービス API を呼び出します。ProviderNew(Not Provider) Project クラスの下のみ - サービス参照の下 - WSDL、xsd ファイルで MyAPI が定義されている (または、これらのファイルがどのように作成されているかわからないため、自動生成されている) ことがわかります。これらに加えて、MyAPI のいくつかの定義を含む ProviderNew のみのいくつかの references.cs ファイルが表示されます。これらのことは、ProviderNew のみが MyAPI のクライアント側プロキシ コードを実装していることを明確に示しています。
私の問題は、IProvider が MyAPI signature をインターフェースするため、両方の実装クラス (Provider と 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 を実装していません
これをできるだけ明確にするために最善を尽くしました。より明確にするためにお知らせください。
続行するにはどうすればよいですか? 助言がありますか ?