いくつかの WCF サービスを作成しました。引数として、それらはService1およびService2と呼ばれます。
どちらのサービスも (ある時点で、おそらくオブジェクト内の関係を通じて) Customerオブジェクトを返します。
テストのために、Service1 と Service2 の両方にGetCustomer()メソッドを追加し、基本的な WinForms アプリケーションで両方のサービスへのサービス参照を追加しました。
Service1Client proxy1 = new Service1Client();
顧客 customer1 = proxy1.GetCustomer(); ///
^^^^^^ あいまいな参照です。WcfTestClient.Service1.Customer という名前にする必要があります。
Service2Client proxy2 = 新しい Service2Client();
顧客 customer2 = proxy2.GetCustomer();
^^^^^ あいまいな参照です。WcfTestClient.Service2.Customer という名前にする必要があります。
問題は、Service1とService2によって返される Customer オブジェクトが両方とも同じ種類の Customer (WcfTestService.Customer) であることです。これを解決するには、Customer だけでなく完全なアセンブリ名を含める必要があります。
データ コントラクトを別のアセンブリにコンパイルできるというスタック オーバーフローに関する投稿をいくつか読みましたが、Java などの他の言語を使用しているクライアントで問題が発生する可能性があるため、この考えは特に好きではありません。
私が見た別の解決策は SvcUtil.exe メソッドですが、各サービスの Util を個別に実行する必要があるため、この解決策は名前空間の問題に対処していません。
誰かが役に立つ提案を持っている場合は、連絡してください!