VS2010 と .NET 4.0 を使用しています。
ここで確認しました ( WCF サービスに実装されているインターフェイスの共有) が、達成しようとしているものがServiceContractでマークされたインターフェイスを含むという点で異なります。
つまり、サービスには、インターフェース A (ServiceContract としてマーク) と拡張インターフェース B (同じく ServiceContract としてマーク) があります。B は、WCF サービスによって実装されます。
正確な拡張子は次のようになります。
public interface A<T>
public interface B : A<SpecificType>
(「SpecificType」は DataContract としてマークされます。)
明らかに、B はプロキシ生成プロセスで WCF クライアントに公開されます。ただし、インターフェイス A も公開する必要があります (半汎用のパブ/サブシステムを実装しており、「パブリッシャー」はインターフェイス A をチェック/依存できる必要があります)。
これを解決しようとした最初の方法は、インターフェイスを含み、サービスとクライアントの両方で使用できる別の「共有」アセンブリを作成することでした。ただし、パブリッシャーでは、B のインスタンスが実際に A から適切に拡張されていることを確認する必要があるため、これはうまく機能しませんでした。この暗黙の変換は失敗します。 「共有」アセンブリとジャイブします。
これを回避するために、Reference.cs ファイルを手動で編集したところ、機能するようになりました (インターフェイス A の定義を追加し、インターフェイス B が適切に参照されるようにしました)。しかし、これはサービス参照を更新するたびにこのコードが消えてしまうという大きな問題を引き起こします。
このサイトや他のサイトで他の WCF の回答を見ても、正確な回答を見つけることができないようです (おそらく、すべての回答とその回答を確認できていないだけかもしれません)。
誰かが私を正しい方向に向けることができれば、私はそれを感謝します.
ありがとう。