Share via


階層式組態模型

此範例示範如何針對服務實作組態檔的階層。 它也會示範如何從階層中較高的層級繼承繫結、服務行為與端點行為。

範例詳細資料

針對 .NET Framework 版本 4 中的 WCF 開發之其中一個功能是階層組態模型中的改進功能。 階層組態模型的範例是由 Machine.config -> Rootweb.config -> Web.config 所定義的範例。 在 .NET Framework 4 中,於組態階層之較上層中定義的那些繫結與行為都會在沒有明確組態的情況下,加入至您的服務。 此範例示範如何能夠透過依賴在電腦或應用程式層級定義的組態項目,簡化您的服務組態。

此範例由三個階層層級中定義的九個服務所組成。Service1 位於根目錄。Service2Service3Service1 繼承預設項目。 Service4Service5Service6Service7 是在階層的第三個層級定義的,且從 Service3 繼承預設項目。 最後,Service10Service11 則位於階層的第四個層級。

所有服務都會實作 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. 按一下 [確定] 以關閉對話方塊。

  3. 若要建立範例,按下 F6。

  4. 若要執行用戶端,按下 Ctrl + F5。

Ee663221.note(zh-tw,VS.100).gif注意:
如果這些步驟沒有作用,則請使用下列步驟確認您的環境已正確設定。

  1. 請確定您已執行 Windows Communication Foundation 範例的單次安裝程序

  2. 若要建置方案,請遵循建置 Windows Communication Foundation 範例中的指示。

  3. 若要在單一或多個電腦組態中執行本範例,請遵循Running the Windows Communication Foundation Samples中的指示進行。

Ee663221.Important(zh-tw,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