EasyWcf------无需配置,无需引用,动态绑定,轻松使用

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

相关文章
相关标签/搜索