次の方法で共有


階層的な構成モデル

このサンプルでは、サービスの構成ファイルの階層を実装する方法を示します。また、バインド、サービス動作、およびエンドポイント動作を階層の上位レベルから継承する方法も示します。

サンプルの詳細

.NET Framework Version 4 の WCF 用に開発された機能の 1 つとして、階層的な構成モデルの強化があります。階層的な構成モデルは、たとえば、Machine.config -> Rootweb.config -> Web.config のように定義されます。.NET Framework 4 では、構成階層の上位レベルで定義されるこれらのバインドおよび動作が、明示的な構成なしにサービスに追加されます。このサンプルでは、コンピューター レベルまたはアプリケーション レベルで定義された構成要素に依存することによって簡単なサービス構成を実現する方法を示します。

このサンプルは、階層の 3 つのレベルで定義された 9 個のサービスから構成されます。Service1 はルートになります。Service2Service3Service1 から既定の要素を継承します。Service4Service5Service6、および 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 と同様に動作しますが、サービス動作ではなくエンドポイント動作のリストを返します。

この実装により、クライアントは、サービスで公開されているエンドポイントの数、およびサービスに追加されたサービス動作とエンドポイント動作を認識できます。サンプルの一部として実装されているクライアントは、ソリューションのすべてのサービスにサービス参照を追加し、サービスごとにこれらの要素を示します。

このサンプルを使用するには

クライアントを実行するには

  1. Visual Studio 2010 を使用して、ConfigHierarchicalModel.sln ファイルを開きます。

  2. クライアント プロジェクトはまだスタートアップ プロジェクトに設定されていないので、次の手順で設定します。

    1. ソリューション エクスプローラーで、ソリューションを右クリックし、[プロパティ] をクリックします。

    2. [共通プロパティ] で、[スタートアップ プロジェクト] をクリックし、[シングル スタートアップ プロジェクト] をクリックします。

    3. [シングル スタートアップ プロジェクト] ボックスの一覧で、[クライアント] をクリックします。

    4. [OK] をクリックしてダイアログ ボックスを閉じます。

  3. サンプルをビルドするには、F6 キーを押します。

  4. クライアントを実行するには、Ctrl キーを押しながら F5 キーを押します。

Ee663221.note(ja-jp,VS.100).gif注 :
この手順が機能しない場合は、次の手順を使用して、環境設定が適切であることを確認してください。

  1. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」が実行済みであることを確認します。

  2. ソリューションをビルドするには、「Windows Communication Foundation サンプルのビルド」の手順に従います。

  3. 単一コンピューター構成か複数コンピューター構成かに応じて、「Running the Windows Communication Foundation Samples」の手順に従います。

Ee663221.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<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