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


    设计原则:万物皆对象

    前言:在上一篇的0配置使用Wcf中,虽然使用已经很方便了,但是对于最求极致简洁得人来说(比如我),客户端需要通过手动引用服务才能够调用服务接口,那么有没有办法能够绕过手动引用这一步,并且直接通过调用地址使用呢?答案肯定是有的,不然我这篇文章就毫无意义了,而我是从来不做无意义之事,人狠话不多,下面介绍如何简单、优雅、高效的使用Wcf

    正文:

    首先需要引入框架,框架代码以及Demo源码在最后的Git地址中!

    服务端:

    定义接口:

    using System.ServiceModel;
    
    namespace WcfServer
    {
        [ServiceContract]
        public interface IMyService
        {
            [OperationContract]
            string Hello();
        }
    }

    实现接口:

    namespace WcfServer
    {
        public class MyService : IMyService
        {
            public string Hello()
            {
                return "Hello World!";
            }
        }
    }

    这里只是简单输出Hello World,别的操作只需要仿造即可!

    服务端启动:

    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

  • 相关阅读:
    基础实验7-2.2 插入排序还是堆排序 (25分)
    进阶实验6-3.1 红色警报 (25分)--并查集
    基础实验3-2.2 单链表分段逆转 (25分)--单链表
    基础实验6-2.2 汉密尔顿回路 (25分)--邻接矩阵
    案例6-1.3 哥尼斯堡的“七桥问题” (25分)--dfs图连通+度判断
    基础实验8-1.1 单身狗 (25分)
    基础实验7-2.3 德才论 (25分)--排序
    基础实验7-2.4 PAT排名汇总 (25分)--结构体排序(快排)
    进阶实验4-3.4 笛卡尔树 (25分)--二叉排序树+堆排序
    基础实验4-2.7 修理牧场 (25分)-堆+哈夫曼树
  • 原文地址:https://www.cnblogs.com/coldairarrow/p/7811530.html
Copyright © 2020-2023  润新知