HOW TO:定義 Windows Communication Foundation 服務合約
這是在建立基本 Windows Communication Foundation (WCF) 服務,及可以呼叫該服務的用戶端時,必須進行的六個工作中的第一個。如需這六個工作的概觀,請參閱使用者入門教學課程主題。
建立基本 WCF 服務時,第一項工作是要定義合約。合約會指定服務所支援的作業。作業可以視為一種 Web 服務方法。合約可以透過定義 C++、C# 或 VB 介面來建立。介面中的每一個方法都會對應到一個特定的服務作業。每一個介面都要有套用一個 ServiceContractAttribute,而且每一個作業都必須套用一個 OperationContractAttribute。如果有 ServiceContractAttribute 之介面內的方法沒有 OperationContractAttribute,則不會公開該方法。
用於這項工作的程式碼將於本程序之後的範例中提供。
若要使用介面建立 Windows Communication Foundation 合約
以滑鼠右鍵按一下 [開始] 功能表中的程式,並選取 [以系統管理員身分執行],以系統管理員的身分開啟 Visual Studio 2008。
建立新的主控台應用程式專案。選取 [新增專案] 對話方塊中的 [Visual Basic] 或 [Visual C#],然後選擇 [主控台應用程式] 範本,並將其命名為 Service。使用預設的 [位置]。
將預設的
Service
命名空間變更為Microsoft.ServiceModel.Samples
。在專案中加入 System.ServiceModel.dll 的參考:
- 在 [方案總管] 中,以滑鼠右鍵按一下專案資料夾下方的 [參考] 資料夾,然後選擇 [加入參考]。
- 按一下 [加入參考] 對話方塊中的 [瀏覽] 索引標籤,巡覽到 c:\Windows\Microsoft.Net\Framework\v3.0\Windows Communication Foundation,然後選取 System.ServiceModel.dll 並按一下 [ 確定]。
注意: 使用命令列編譯器時 (例如,Csc.exe 或 Vbc.exe),必須同時提供組件的路徑。依照預設,以執行 Windows Vista 的電腦為例,路徑為:Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation。 為 System.ServiceModel 命名空間新增 using 陳述式 (Visual Basic 中的 Imports)。
定義稱為
ICalculator
的新介面,然後將 ServiceContractAttribute 屬性套用到介面,並將 Namespace 值設為 "http://Microsoft.ServiceModel.Samples"。明確的指定命名空間是最理想的作法,因為如此一來,預設的命名空間值便不會加入合約名稱。注意: 使用屬性對介面或類別進行標註時,您可以在屬性名稱中省略 "Attribute" 的部分。因此,ServiceContractAttribute 會變成 [ServiceContract] 在介面中,為每一個
ICalculator
合約所公開的作業 (加/減/乘/除),宣告一個方法,然後在每一個想公開為公用 WCF 合約一部分的方法中,套用 OperationContractAttribute 屬性。
範例
下列程式碼範例會顯示可定義服務合約的基本介面。
現在,介面已經建立完成。建置專案並且確認沒有任何編譯錯誤,然後繼續進行 HOW TO:實作 Windows Communication Foundation 服務合約,實作介面。如需疑難排解的詳細資訊,請參閱使用者入門教學課程疑難排解。
請參閱
工作
HOW TO:實作 Windows Communication Foundation 服務合約
參考
ServiceContractAttribute
OperationContractAttribute