なぜあなたはあなたがに接続しているどのサービスに基づいて、クライアントのコードを変更する必要がありますか?あなたは2つの異なる.configファイルを持つことができませんか? devサービスへの接続とテストサービスへの接続を含む接続テスト/ devモードに基づいて.configファイルを切り替えるだけです。
もちろん、あなたのサービスの契約はインターフェースであり、開発者とテスト版の両方のサービスは同じ契約インターフェースを使用しますが、それはあなたが求めていたものではないようです。
編集:
あなたはまだ行っていない場合は、サービスのためのServiceContractインターフェイスを抽出します。あなたの開発者とテストサービスの両方がインターフェースを実装する必要があります。このような何か:
[ServiceContract(Namespace="http://stackoverflow.com/questions/965977")]
public interface IASRService
{
[OperationContract]
ASRItem GetASRItem();
}
{namespace}
はあなたのインターフェイスの名前空間の場所です、あなたのクライアントのためのあなたのapp.config(またはweb.configファイル)ファイルはこのようなものが含まれている必要があります。これらを両方とも単一の.configファイルに保存したい場合は、これが機能します。
サービスを使用するクライアントのコードは、次のようになります。 ChannelFactoryコンストラクタのコンフィギュレーション名を指定します。
ChannelFactory<IASRService> cf = new ChannelFactory<IASRService>("ASRService");
IASRService proxy = cf.CreateChannel();
ASRItem DevServiceItem = proxy.GetASRItem;
OR
ChannelFactory<IASRService> cfTest = new ChannelFactory<IASRService>("ASRServiceTest");
IASRService proxyTest = cfTest.CreateChannel();
ASRItem TestServiceItem = proxyTest.GetASRItem;
のいずれかのプロキシのタイプは常にIASRServiceあるので、あなたはそれを持っているコードは、オブジェクトのみを操作することインターフェイスタイプについて知っておく必要があります。オブジェクトを生成したサービスのバージョンは気にしないでください。
また、私はLearning WCFという本をMichele Leroux Bustamanteがお勧めします。このようなことをすべて行う方法の素晴らしい例!
誰かに見せたいと思えば、あなたの質問はタイトルに書いてください。 – Macke