[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
 
三小俠 小弟獻醜,歡迎指教