设计原则:万物皆对象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