2012-04-20 11 views

答えて

3

明白な利点は、あなたのクライアントにサービス契約のdllファイルを共有できることです。クライアントとサーバーの間で共通のサービス契約DLLを共有する場合、クライアントはChannelFactoryクラスのサービスを使用できます。

ChannelFactory<IHelloWorld> channel = new ChannelFactory<IHelloWorld>("tcp"); 

(二つの異なる方法WCFサービスは、クライアントによって消費することができます。(Using ChannelFactory Vs. Proxies in WCF

+0

+1ああ、私はプログラム的にクライアントにサーバーをバインドするのではなく、悲惨なapp.configファイルを使用する方が好きなので意味があります。 – Sam

1

一般的に(WCFサービスは特にありません)、デザインの観点からは、実装とインターフェイスを分離することをお勧めします。

ただし、WCFサービスでは、次の点に注意する必要があります。インターフェイスプロジェクトにサービスメソッドによって使用されるオブジェクトのインターフェイスが含まれている場合、WCFサービスインターフェイスはインターフェイスプロジェクトの一部ではなく、実装プロジェクトこの理由は、WCFサービス操作では、インターフェイスタイプを(相互運用可能な方法で)シリアル化できないため、メソッドシグネチャにインターフェイスタイプを使用しないでください。実装タイプを使用する必要があるため、実装プロジェクトに含める必要があります。そうしないと、インターフェイスプロジェクトから実装プロジェクトに参照を追加する必要があるためです。それは設計が貧弱であり、実装とインタフェースの分離を無駄にすることになります。

+0

おかげで、あなたはそれが意味になってどんなセットアップ「WCFフレームワーク」へのより良い方法、を知っていますWCFサービスライブラリのテンプレートには何か不足していることがありますか?その記事が正しい方法ではない場合は、より良い方法はありますか?どんなリソースもありがとうございます。 – Sam

+0

@Sam WCFはさまざまな方法でさまざまな目的で使用できますが、私の場合、最も簡単な方法から始めて、より適切なデシグを検索します必要に応じて特定のニーズに合わせたns。 – Peladao

関連する問題