zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据库为什么要分区分表
    搜索时 搜索条件在被搜索范围内
    Spring RestTemplet https请求
    微信三方平台接入
    在安装RedisDesktopManager的时候遇到 .dll文件缺失解决办法
    Spring中常见的设计模式——装饰者模式
    Spring中常见的设计模式——适配器模式
    Spring中常见的设计模式——模板模式
    Spring中常见的设计模式——策略模式
    Spring中常见的设计模式——代理模式
  • 原文地址:https://www.cnblogs.com/coldairarrow/p/7811530.html
Copyright © 2011-2022 走看看