本教學課程說明建立基本 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 服務合約。