教學課程:定義 Windows Communication Foundation 服務合約
本教學課程說明建立基本 Windows Communication Foundation (WCF) 應用程式所需的五項工作中的第一項。 如需教學課程的概觀,請參閱教學課程:開始使用 Windows Communication Foundation 應用程式。
建立 WCF 服務時,您的第一個工作是定義服務合約。 服務合約會指定服務所支援的作業。 作業可以視為一種 Web 服務方法。 定義 C# 或 Visual Basic 介面後,即可建立服務合約。 追蹤有下列特性:
- 介面中的每一個方法都會對應到一個特定的服務作業。
- 針對每個介面,您必須套用 ServiceContractAttribute 屬性。
- 針對每個作業/方法,您必須套用 OperationContractAttribute 屬性。
在本教學課程中,您會了解如何:
- 建立 WCF 服務程式庫專案。
- 定義服務合約介面。
建立 WCF 服務程式庫專案並定義服務合約介面
以系統管理員身分開啟 Visual Studio。 若要這樣做,請在 [開始] 功能表中選取 Visual Studio 程式,然後從捷徑功能表選取 [更多] > [以管理員身分執行]。
建立 WCF 服務程式庫專案。
從 [檔案] 功能表選取 [新增] >[專案] 。
在 [新增專案] 對話方塊中,展開左側的 [Visual C#] 或 [Visual Basic],然後選取[WCF] 類別。 Visual Studio 會在視窗中央區段中,顯示專案範本的清單。 選取 [WCF 服務程式庫]。
注意
如果您看不到 WCF 專案範本類別,您可能需要安裝 Visual Studio 的 Windows Communication Foundation 元件。 在 [新增專案] 對話方塊中,選取左側的 [開啟 Visual Studio 安裝程式] 連結。 選取[個別元件] 索引標籤,然後在 [開發活動] 類別下尋找並選取 [Windows Communication Foundation]。 選擇 [修改] 開始安裝元件。
在視窗底部的區段中,針對 [名稱] 輸入 GettingStartedLib,然後針對 [解決方案名稱] 輸入GettingStarted。
選取 [確定]。
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 開發人員環境設定,解決方案可能會隱藏。 如果是這種情況,請從 [工具] 功能表選取 [選項],然後在 [選項] 視窗中,選取 [專案與解決方案] > [一般]。 選取 [一律顯示解決方案]。 另外,請確認您已選取 [建立時儲存新專案]。
從 [方案總管] 開啟 IService1.cs 或 IService1.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 服務合約。