このサンプルでは、サービスの構成ファイルの階層を実装する方法を示します。また、バインド、サービス動作、およびエンドポイント動作を階層の上位レベルから継承する方法も示します。
サンプルの詳細
.NET Framework Version 4 の WCF 用に開発された機能の 1 つとして、階層的な構成モデルの強化があります。階層的な構成モデルは、たとえば、Machine.config -> Rootweb.config -> Web.config のように定義されます。.NET Framework 4 では、構成階層の上位レベルで定義されるこれらのバインドおよび動作が、明示的な構成なしにサービスに追加されます。このサンプルでは、コンピューター レベルまたはアプリケーション レベルで定義された構成要素に依存することによって簡単なサービス構成を実現する方法を示します。
このサンプルは、階層の 3 つのレベルで定義された 9 個のサービスから構成されます。Service1
はルートになります。Service2
と Service3
は Service1
から既定の要素を継承します。Service4
、Service5
、Service6
、および Service7
は、階層の第 3 レベルで定義され、Service3
から既定の要素を継承します。最後に、Service10
および Service11
は階層の第 4 レベルに置かれます。
すべてのサービスは IDesc
コントラクトを実装します。IDesc
インターフェイスの定義を次に示します。この定義は、このインターフェイスで公開されるメソッドを示しています。IDesc
インターフェイスは Service1.cs で定義されます。
// Define a service contract
[ServiceContract(Namespace="http://Microsoft.Samples.ConfigHierarchicalModel")]
public interface IDesc
{
[OperationContract]
List<string> ListEndpoints();
[OperationContract]
List<string> ListServiceBehaviors();
[OperationContract]
List<string> ListEndpointBehaviors();
}
サービスによるこれらのメソッドの実装は単純です。ListEndpoints
は、すべてのサービス エンドポイントを反復処理し、サービスにあるすべてのエンドポイントのリストを返します。ListServiceBehaviors
は、サービスに追加されたすべての動作を反復処理し、サービスに関連付けられているすべてのサービス動作のリストを返します。ListEndpointBehaviors
は、ListServiceBehaviors
と同様に動作しますが、サービス動作ではなくエンドポイント動作のリストを返します。
この実装により、クライアントは、サービスで公開されているエンドポイントの数、およびサービスに追加されたサービス動作とエンドポイント動作を認識できます。サンプルの一部として実装されているクライアントは、ソリューションのすべてのサービスにサービス参照を追加し、サービスごとにこれらの要素を示します。
このサンプルを使用するには
クライアントを実行するには
Visual Studio 2010 を使用して、ConfigHierarchicalModel.sln ファイルを開きます。
クライアント プロジェクトはまだスタートアップ プロジェクトに設定されていないので、次の手順で設定します。
ソリューション エクスプローラーで、ソリューションを右クリックし、[プロパティ] をクリックします。
[共通プロパティ] で、[スタートアップ プロジェクト] をクリックし、[シングル スタートアップ プロジェクト] をクリックします。
[シングル スタートアップ プロジェクト] ボックスの一覧で、[クライアント] をクリックします。
[OK] をクリックしてダイアログ ボックスを閉じます。
サンプルをビルドするには、F6 キーを押します。
クライアントを実行するには、Ctrl キーを押しながら F5 キーを押します。
![]() |
---|
この手順が機能しない場合は、次の手順を使用して、環境設定が適切であることを確認してください。
|
![]() |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<InstallDrive>:\WF_WCF_Samples
このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\ConfigHierarchicalModel
|