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

相關文章
相關標籤/搜索