前言:由于個人原因很久沒有更新這個系列了,我會繼續的更新這系列的文章。這一章是單向和雙向通訊。所謂的單向就是只有發送卻沒有回復,雙向是既有發送還有回復。就是有來無往代表單向,禮尚往來表示雙向。下面我用一個簡單用例圖表示一下(其中一個老師很嚴厲說的話大家都默默接受,另一個則相反)
首先我們先看單向通訊:
第一步:編寫服務協定
1 [ServiceContract(Namespace = "singleTrans")]2 public interface ITeacher3 {4 [OperationContract(IsOneWay = true)]5 void Speak(string message);6 }
注釋1:IsOneWay = true 表示單向通訊,false表示雙向通訊
第二步:完成服務協定
1 public void Speak(string message)2 {3 Console.WriteLine("老師下達的命令:{0}",message);4 }
第三步:配置服務器(同前幾篇)
第四步:客戶端調用運行結果
那么單向通訊就完成了。
現在我們修改一下服務協定
協定 [ServiceContract(Namespace = "singleTrans")] public interface ITeacher { [OperationContract(IsOneWay = true)] string Speak(string message); }實現 public string Speak(string message) { Console.WriteLine("老師下達的命令:{0}",message); return "保證完成任務"; }
運行結果:
出現錯誤了所有總結:
啟用單向通訊的方法,不能有返回值(void可以),不能有out參數,只允許傳入參數
現在我們在來看一下雙向協定
把剛剛的IsOneWay = false。然后在次運行看看結果
這回就成功了,既調用了服務,也得到了返回的數據。
這一篇也表面也很簡單,但是很多更深的需要自己去理解去想。
源碼下載
新聞熱點
疑難解答