共用方式為


教學課程:定義 Windows Communication Foundation 服務合約

本教學課程說明建立基本 Windows Communication Foundation (WCF) 應用程式所需的五項工作中的第一項。 如需教學課程的概觀,請參閱教學課程:開始使用 Windows Communication Foundation 應用程式

建立 WCF 服務時,您的第一個工作是定義服務合約。 服務合約會指定服務所支援的作業。 作業可以視為一種 Web 服務方法。 定義 C# 或 Visual Basic 介面後,即可建立服務合約。 追蹤有下列特性:

在本教學課程中,您會了解如何:

  • 建立 WCF 服務程式庫專案。
  • 定義服務合約介面。

建立 WCF 服務程式庫專案並定義服務合約介面

  1. 以系統管理員身分開啟 Visual Studio。 若要這樣做,請在 [開始] 功能表中選取 Visual Studio 程式,然後從捷徑功能表選取 [更多] > [以管理員身分執行]。

  2. 建立 WCF 服務程式庫專案。

    1. 從 [檔案] 功能表選取 [新增] >[專案] 。

    2. 在 [新增專案] 對話方塊中,展開左側的 [Visual C#] 或 [Visual Basic],然後選取[WCF] 類別。 Visual Studio 會在視窗中央區段中,顯示專案範本的清單。 選取 [WCF 服務程式庫]。

      注意

      如果您看不到 WCF 專案範本類別,您可能需要安裝 Visual Studio 的 Windows Communication Foundation 元件。 在 [新增專案] 對話方塊中,選取左側的 [開啟 Visual Studio 安裝程式] 連結。 選取[個別元件] 索引標籤,然後在 [開發活動] 類別下尋找並選取 [Windows Communication Foundation]。 選擇 [修改] 開始安裝元件。

    3. 在視窗底部的區段中,針對 [名稱] 輸入 GettingStartedLib,然後針對 [解決方案名稱] 輸入GettingStarted

    4. 選取 [確定]。

      Visual Studio 會建立專案,包含三個檔案:IService1.cs (或適用於 Visual Basic 專案的 IService1.vb)、Service1.cs (或適用於 Visual Basic 專案的 Service1.vb) 和 App.config。Visual Studio 會定義這些檔案,如下所示:

      • IService1 檔案包含服務合約的預設定義。
      • Service1 檔案包含服務合約的預設實作。
      • App.config 檔案包含載入預設服務與 Visual Studio WCF 服務主機工具所需的設定資訊。 如需 WCF 服務主機工具的詳細資訊,請參閱 WCF 服務主機 (WcfSvcHost.exe)

      注意

      如果您已安裝 Visual Studio 與 Visual Basic 開發人員環境設定,解決方案可能會隱藏。 如果是這種情況,請從 [工具] 功能表選取 [選項],然後在 [選項] 視窗中,選取 [專案與解決方案] > [一般]。 選取 [一律顯示解決方案]。 另外,請確認您已選取 [建立時儲存新專案]。

  3. 從 [方案總管] 開啟 IService1.csIService1.vb 檔案,並以下列程式碼取代檔案的程式碼:

    using System;
    using System.ServiceModel;
    
    namespace GettingStartedLib
    {
            [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
            public interface ICalculator
            {
                [OperationContract]
                double Add(double n1, double n2);
                [OperationContract]
                double Subtract(double n1, double n2);
                [OperationContract]
                double Multiply(double n1, double n2);
                [OperationContract]
                double Divide(double n1, double n2);
            }
    }
    
    Imports System.ServiceModel
    
    Namespace GettingStartedLib
    
        <ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
        Public Interface ICalculator
    
            <OperationContract()> _
            Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
            <OperationContract()> _
            Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
        End Interface
    End Namespace
    

    本合約定義了線上計算機。 請注意,ICalculator 介面標示著 ServiceContractAttribute 屬性 (簡化為 ServiceContract)。 此屬性會定義區分合約名稱的命名空間。 程式碼會使用 OperationContractAttribute 屬性 (簡化為 OperationContract),標示每個計算機作業。

下一步

在本教學課程中,您已了解如何:

  • 建立 WCF 服務程式庫專案。
  • 定義服務合約介面。

前往下一個教學課程,了解如何實作 WCF 服務合約。