绗簩绔狅細WCF鍩虹(三)
绗簩绔狅細WCF鍩虹(3)
鍘熸枃锛?a target="_blank" href="http://www.wcftutorial.net/Introduction-to-WCF.aspx">http://www.wcftutorial.net/Introduction-to-WCF.aspx
濂戠害鍜屾湇鍔℃墭绠ontracts and Service Host
濂戠害Contracts
鍦╓CF涓紝鎵€鏈夌殑鏈嶅姟鏄€氳繃濂戠害鏉ュ叕甯冨嚭鍘荤殑锛屽绾︽槸骞冲彴鏃犲叧鎬х殑锛岀敤鏉ユ弿杩版湇鍔$殑浣滅敤锛屽湪WCF涓湁4绉嶄富瑕佺殑濂戠害銆?
鏈嶅姟濂戠害Service Contract
鏈嶅姟濂戠害鎻忚堪璇ユ湇鍔″彲浠ユ彁渚涚殑鎿嶄綔锛屼緥濡傦紝涓€涓€氳繃閭紪鍙锋潵纭鍩庡競姘旀俯鐨勬湇鍔★紝杩欎釜鏈嶅姟灏辨槸鏈嶅姟濂戠害锛屽彲浠ラ€氳繃鐗规€ф湇鍔″拰鎿嶄綔濂戠害灞炴€с€?
閫氳繃鏈嶅姟濂戠害鏉ヤ簡瑙f洿澶?
鏁版嵁濂戠害Data Contract
鏁版嵁濂戠害鎻忚堪浜嗗叕甯冪粰瀹㈡埛绔殑鏁版嵁绫诲瀷锛屽畾涔変簡鏈嶅姟鎺ュ彈鍜屽搷搴旂殑鏁版嵁绫诲瀷锛宨nt锛宻tring杩欎簺绫诲瀷鍥犱负鍦╔ML schema涓畾涔夎繃浜嗭紝鎵€浠ュ鎴风鍙互璇嗗埆锛屼絾鏄嚜瀹氫箟鐨勭被鎴栬€呮暟鎹被鍨嬫病鍔炴硶琚鎴风璇嗗埆锛屾瘮濡傦紝Employee绫诲瀷锛岄€氳繃浣跨敤鏁版嵁濂戠害锛屽彲浠ラ€氱煡瀹㈡埛绔帴鍙楁垨鑰呰繑鍥炶嚜瀹氫箟绫诲瀷銆?
閫氳繃鏁版嵁濂戠害鏉ヤ簡瑙f洿澶?
娑堟伅濂戠害Message Contract
WCF浣跨敤榛樿鐨凷OAP鍗忚鏉ヤ娇瀹㈡埛绔拰鏈嶅姟绔繘琛岄€氫俊锛屽鏋滆繖涓嶇鍚堜綘鐨勯渶姹傦紝浣犲彲浠ヨ嚜瀹氫箟娑堟伅鏍煎紡锛屽彲浠ヤ娇鐢ㄦ秷鎭绾﹀睘鎬ф潵瀹炵幇銆?
閫氳繃娑堟伅濂戠害鏉ヤ簡瑙f洿澶?
澶辫触濂戠害Fault Contract
鍔犲叆鍦ㄥ鎴风搴旂敤鐨勮皟鐢ㄤ腑锛屾湇鍔$鍑虹幇浜嗛棶棰橈紝鎴戝笇鏈涘緱鍒板嚭鐜伴棶棰樼殑鍏蜂綋鍘熷洜锛屾垜濡備綍寰楀埌杩欎釜閿欒淇℃伅鍛紵涓烘锛屾垜浠緱浣跨敤閿欒濂戠害锛岄敊璇绾﹀湪鍙戠敓閿欒鐨勬椂鍊欒礋璐f彁渚涙枃妗g粰瀹㈡埛绔紝杩欏皢瀵规垜浠緢瀹规槗浜嗚В閿欒鐨勫彂鐢熷師鍥犮€?
閫氳繃閿欒濂戠害鏉ヤ簡瑙f洿澶?
鏈嶅姟鎵樼
鏈嶅姟鎵樼瀵硅薄Service Host鏄墭绠CF鏈嶅姟鐨勪竴涓繘绋嬶紝骞朵笖娉ㄥ唽缁堢粨鐐癸紝瀹冨皢浼氳杞芥枃浠剁偣鐨勯厤缃枃浠讹紝閫傜敤setting锛屽苟涓旂洃鍚姹傦紝System.ServiceModel.ServiceHost鍛藉悕绌洪棿鏈夎繖浜涚被鍨嬶紝杩欎簺瀵硅薄鐢盬CF鑷墭绠℃湇鍔″垱寤恒€?
涓嬮潰杩欎釜渚嬪瓙鏄帶鍒跺彴搴旂敤绋嬪簭浣跨敤鑷墭绠″垱寤篧CF鏈嶅姟銆?
鍘熸枃锛?a target="_blank" href="http://www.wcftutorial.net/Introduction-to-WCF.aspx">http://www.wcftutorial.net/Introduction-to-WCF.aspx
濂戠害鍜屾湇鍔℃墭绠ontracts and Service Host
濂戠害Contracts
鍦╓CF涓紝鎵€鏈夌殑鏈嶅姟鏄€氳繃濂戠害鏉ュ叕甯冨嚭鍘荤殑锛屽绾︽槸骞冲彴鏃犲叧鎬х殑锛岀敤鏉ユ弿杩版湇鍔$殑浣滅敤锛屽湪WCF涓湁4绉嶄富瑕佺殑濂戠害銆?
鏈嶅姟濂戠害Service Contract
鏈嶅姟濂戠害鎻忚堪璇ユ湇鍔″彲浠ユ彁渚涚殑鎿嶄綔锛屼緥濡傦紝涓€涓€氳繃閭紪鍙锋潵纭鍩庡競姘旀俯鐨勬湇鍔★紝杩欎釜鏈嶅姟灏辨槸鏈嶅姟濂戠害锛屽彲浠ラ€氳繃鐗规€ф湇鍔″拰鎿嶄綔濂戠害灞炴€с€?
閫氳繃鏈嶅姟濂戠害鏉ヤ簡瑙f洿澶?
鏁版嵁濂戠害Data Contract
鏁版嵁濂戠害鎻忚堪浜嗗叕甯冪粰瀹㈡埛绔殑鏁版嵁绫诲瀷锛屽畾涔変簡鏈嶅姟鎺ュ彈鍜屽搷搴旂殑鏁版嵁绫诲瀷锛宨nt锛宻tring杩欎簺绫诲瀷鍥犱负鍦╔ML schema涓畾涔夎繃浜嗭紝鎵€浠ュ鎴风鍙互璇嗗埆锛屼絾鏄嚜瀹氫箟鐨勭被鎴栬€呮暟鎹被鍨嬫病鍔炴硶琚鎴风璇嗗埆锛屾瘮濡傦紝Employee绫诲瀷锛岄€氳繃浣跨敤鏁版嵁濂戠害锛屽彲浠ラ€氱煡瀹㈡埛绔帴鍙楁垨鑰呰繑鍥炶嚜瀹氫箟绫诲瀷銆?
閫氳繃鏁版嵁濂戠害鏉ヤ簡瑙f洿澶?
娑堟伅濂戠害Message Contract
WCF浣跨敤榛樿鐨凷OAP鍗忚鏉ヤ娇瀹㈡埛绔拰鏈嶅姟绔繘琛岄€氫俊锛屽鏋滆繖涓嶇鍚堜綘鐨勯渶姹傦紝浣犲彲浠ヨ嚜瀹氫箟娑堟伅鏍煎紡锛屽彲浠ヤ娇鐢ㄦ秷鎭绾﹀睘鎬ф潵瀹炵幇銆?
閫氳繃娑堟伅濂戠害鏉ヤ簡瑙f洿澶?
澶辫触濂戠害Fault Contract
鍔犲叆鍦ㄥ鎴风搴旂敤鐨勮皟鐢ㄤ腑锛屾湇鍔$鍑虹幇浜嗛棶棰橈紝鎴戝笇鏈涘緱鍒板嚭鐜伴棶棰樼殑鍏蜂綋鍘熷洜锛屾垜濡備綍寰楀埌杩欎釜閿欒淇℃伅鍛紵涓烘锛屾垜浠緱浣跨敤閿欒濂戠害锛岄敊璇绾﹀湪鍙戠敓閿欒鐨勬椂鍊欒礋璐f彁渚涙枃妗g粰瀹㈡埛绔紝杩欏皢瀵规垜浠緢瀹规槗浜嗚В閿欒鐨勫彂鐢熷師鍥犮€?
閫氳繃閿欒濂戠害鏉ヤ簡瑙f洿澶?
鏈嶅姟鎵樼
鏈嶅姟鎵樼瀵硅薄Service Host鏄墭绠CF鏈嶅姟鐨勪竴涓繘绋嬶紝骞朵笖娉ㄥ唽缁堢粨鐐癸紝瀹冨皢浼氳杞芥枃浠剁偣鐨勯厤缃枃浠讹紝閫傜敤setting锛屽苟涓旂洃鍚姹傦紝System.ServiceModel.ServiceHost鍛藉悕绌洪棿鏈夎繖浜涚被鍨嬶紝杩欎簺瀵硅薄鐢盬CF鑷墭绠℃湇鍔″垱寤恒€?
涓嬮潰杩欎釜渚嬪瓙鏄帶鍒跺彴搴旂敤绋嬪簭浣跨敤鑷墭绠″垱寤篧CF鏈嶅姟銆?
//Creating uri for the hosting the service Uri uri = new Uri("http://localhost/CategoryService"); //Creating the host object for MathService ServiceHost host = new ServiceHost(typeof(CategoryService), uri); //Adding endpoint to the Host object host.AddServiceEndpoint(typeof(ICategoryService),new WSHttpBinding(), uri); host.Open(); //Hosting the Service Console.WriteLine("Waiting for client invocations"); Console.ReadLine(); host.Close();