[WCF] 建立 WCF 服務 (單機版)
Introduction
何謂 WCF (Windows Communication Foundation) :http://en.wikipedia.org/wiki/Windows_Communication_Foundation
這是新一代的服務元件,用來幫助應用程式繫結服務端點功能的服務。透過 WCF 架構所提供的支援,
無論你是要建立分享給其他應用應用程式使用的服務,或是要存取已經存在的服務,都可以輕鬆達成。
其他更詳細的說明:
http://msdn.microsoft.com/zh-tw/library/ms735119.aspx
WCF 概要
自己做個練習紀錄一下,簡單呼叫 服務端的功能。
Example
首先建立一個空白方案並且加入應用程式專案與加入新網站選取 WCF 服務,所以方案如圖
在 WCF 專案中,自動幫我們建立了一些資料夾與檔案
其中 IService.cs
// 注意: 若變更此處的介面名稱 "IService",也必須更新 Web.config 中 "IService" 的參考。
[ServiceContract]//用來宣告服務端點(套用在介面宣告前)
public interface IService
{
[OperationContract]//用來宣告服務功能(套用在介面方法前)
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// 待辦事項: 在此新增您的服務作業
}
//使用下列範例中所示的資料合約,新增複合型別至服務作業。
[DataContract]//用來宣告服務功能執行時,所傳遞的資料規格(套用在類別宣告前)
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
Service.cs
// 注意: 若變更此處的類別名稱 "Service",也必須更新 Web.config 與關聯之 .svc 檔案中 "Service" 的參考。
public class Service : IService
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
}
}
這時點選服務專案,並在方案總管右側點選 asp.net 組態
進入組態管理,這定啟用偵錯
接下來在 AWClient 專案中,加入服務參考,選擇方案中的服務,出現 .svc 後,點選服務自動會偵測,
修改下方命名空間名稱為 AWDService
這時 AWClient 專案檔案結構如圖
其中 Service References 與 app.config 是加入服務參考後,自動產生的。
撰寫 Client 端程式碼與簡單的介面表現
private void btnExcuteWCF_Click(object sender, EventArgs e) {
//建立服務元件
AWDService.ServiceClient myServiceClient = new AWClient.AWDService.ServiceClient();
//呼叫 GetData 功能 ,傳回字串
string sValue = myServiceClient.GetData(5566);
MessageBox.Show(sValue);
}
執行結果
Link
- http://www.dotblogs.com.tw/larrynung/archive/2009/04/10/7957.aspx
- Windows Communication Foundation
- 建立第一個以 WCF 為基礎的分散式應用程式
- Windows Communication Foundation 範例
- Windows Communication Foundation 工具
- http://www.dotblogs.com.tw/puma/archive/2009/06/21/wcf-net-tcp-channelfactory-clientbase.aspx
三小俠 小弟獻醜,歡迎指教