設計原則:萬物皆對象git
前言:在上一篇的0配置使用Wcf中,雖然使用已經很方便了,可是對於最求極致簡潔得人來講(好比我),客戶端須要經過手動引用服務纔可以調用服務接口,那麼有沒有辦法可以繞過手動引用這一步,而且直接經過調用地址使用呢?答案確定是有的,否則我這篇文章就毫無心義了,而我是歷來不作無心義之事,人狠話很少,下面介紹如何簡單、優雅、高效的使用Wcfgithub
正文:框架
首先須要引入框架,框架代碼以及Demo源碼在最後的Git地址中!ui
服務端:spa
定義接口:設計
using System.ServiceModel; namespace WcfServer { [ServiceContract] public interface IMyService { [OperationContract] string Hello(); } }
實現接口:code
namespace WcfServer { public class MyService : IMyService { public string Hello() { return "Hello World!"; } } }
這裏只是簡單輸出Hello World,別的操做只須要仿造便可!對象
服務端啓動:blog
using Coldairarrow.Util.Wcf; using System; namespace WcfServer { class Program { static void Main(string[] args) { WcfHost<MyService, IMyService> wcfHost = new WcfHost<MyService, IMyService>("http://localhost:14725", "http://localhost:14725/mex"); wcfHost.HandleHostOpened = new Action<object, EventArgs>((obj, tar) => { Console.WriteLine("服務已啓動!"); }); wcfHost.StartHost(); while (Console.ReadLine() != "quit") { } } } }
服務端與上次的使用沒多大區別接口
注意:服務端啓動必需要以管理員身份運行!
客戶端:
using Coldairarrow.Util.Wcf; using System; using WcfServer; namespace WcfClient { class Program { static void Main(string[] args) { var client = WcfClientFactory.CreateClientByUrl<IMyService>("http://localhost:14725/MyService"); var data = client.Hello(); Console.WriteLine(data); Console.ReadKey(); } } }
客戶端的使用不須要再從地址引用服務了,直接經過調用WcfClientFactory.CreateClientByUrl方法就能夠返回操做接口,其中須要傳入泛型接口類,也就是服務端中的IMyService。
服務端運行後,客戶端直接運行便可!
運行截圖以下:
服務端截圖:
客戶端截圖:
能夠看到,使用起來十分地簡單方便,能夠極大的提升開發效率!
老規矩,所有源碼及Demo在GitHub:https://github.com/Coldairarrow/EasyWcf
你們用得爽了別忘了點星星哦~~~
分割線------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通過了差很少半年,畢業設計也終於完成了,個人畢設是後臺快速開發框架,不出意外這個框架會永遠伴隨着我,我也會一直完善它,但願它可以在個人職業生涯中發放光彩!
畢設雖然完成了,可是探索技術的步伐是永遠不會中止的!你們一塊兒加油~~~
END