最近在學習WCF通信,自己簡單做個實例分享一下,環境是VS2015,使用的項目都是WPF的項目,其實大家用Winform或者Web項目也可以,都可以用的。 一、伺服器端 1、創建WCF服務 服務名為WCFServer,而後自動生成如下兩個文件,IMyWCFServer為服務契約介面,MyWCFSer ...
最近在學習WCF通信,自己簡單做個實例分享一下,環境是VS2015,使用的項目都是WPF的項目,其實大家用Winform或者Web項目也可以,都可以用的。
一、伺服器端
1、創建WCF服務
服務名為WCFServer,而後自動生成如下兩個文件,IMyWCFServer為服務契約介面,MyWCFServer為服務契約介面的具體實現。服務契約其實就是聲明瞭客戶端可以訪問的函數介面。
2、聲明服務契約
IMyWCFService代碼:
1 namespace WCFServer 2 { 3 // 註意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的介面名“IMyWCFService”。 4 [ServiceContract] 5 public interface IMyWCFService 6 { 7 //聲明服務契約的介面函數 8 9 [OperationContract] 10 void DoWork(); 11 12 [OperationContract] 13 string GetSomeData(string name); 14 } 15 }
3、實現服務契約
MyWCFSerivice代碼:
1 namespace WCFServer 2 { 3 // 註意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的類名“MyWCFService”。 4 public class MyWCFService : IMyWCFService 5 { 6 public void DoWork() 7 { 8 Console.Write("111"); 9 Console.Read(); 10 } 11 public string GetSomeData(string name) 12 { 13 return name + " Hello!"; 14 } 15 } 16 }
App.config配置文件會自動生成如下代碼:
1 <system.serviceModel> 2 <bindings> 3 <basicHttpBinding> 4 <binding name="BasicHttpBinding_IMyWCFService" /> 5 </basicHttpBinding> 6 </bindings> 7 <client> 8 <endpoint address="http://localhost:8733/Design_Time_Addresses/WCFServer/MyWCFService/" //引用服務的鏈接 9 binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyWCFService" 10 contract="MyWCF.IMyWCFService" name="BasicHttpBinding_IMyWCFService" /> 11 </client> 12 </system.serviceModel>
4、連通性測試
使用瀏覽器訪問該引用服務鏈接,如出現如下圖類似界面即服務端部署成功。
二、客戶端
1、客戶端添加WCF服務引用
2、調用服務契約函數
1 //創建WCF服務引用的實例 2 WCFClient.MyWCF.MyWCFServiceClient W = new MyWCFServiceClient(); 3 //調用服務契約聲明的介面 4 W.DoWork(); 5 string msg = W.GetSomeData("Bobbie"); 6 MessageBox.Show(msg);
3、運行結果
客戶端出現“Bobbie Hello!”的彈窗,服務端終端列印"111"
以上便是WCF的簡單應用,更複雜的還有全雙工的還沒研究,研究好了會再分享。WCF可以通過簡單的配置和部署就可以實現C/S架構。