zoukankan      html  css  js  c++  java
  • 纯手写wcf代码,wcf入门,wcf基础教程

    1、定义服务协定

        =>定义接口

    using System.ServiceModel;
    
    namespace WcfConsole
    {
        /// <summary>
        /// 定义服务协定
        /// </summary>
        [ServiceContract]
        interface IW
        {
            [OperationContract]
            string HelloWorld();
        }
    }
    


    2、实现服务协定

        =>实现接口

    namespace WcfConsole
    {
        /// <summary>
        /// 实现服务协定
        /// </summary>
        public class W : IW
        {
            public string HelloWorld()
            {
                return "HelloWorld";
            }
        }
    }


    3、承载和执行服务

        =>打开服务

    using System;
    using System.ServiceModel;
    using System.ServiceModel.Description;
    
    namespace WcfConsole
    {
        /// <summary>
        /// 承载和执行主要的 WCF 服务
        /// </summary>
        class Program
        {
            static void Main(string[] args)
            {
                //创建服务网址
                Uri url = new Uri("http://localhost:5210/W/");
                //创建server主机
                ServiceHost host = new ServiceHost(typeof(W), url);
                try
                {
                    //加入服务端点
                    host.AddServiceEndpoint(typeof(IW), new WSHttpBinding(), "serviceName");
    
                    //启用元素交换
                    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                    smb.HttpGetEnabled = true;
                    host.Description.Behaviors.Add(smb);
    
                    //打开服务
                    host.Open();
    
                    Console.WriteLine("服务打开成功……");
                    Console.ReadKey();
    
                    //关闭服务
                    host.Close();
                }
                catch (CommunicationException e)
                {
                    Console.WriteLine(e.Message);
                    //关闭服务
                    host.Close();
                }
            }
        }
    }
    


    4、创建client

        =>须要先打开匃

        =>新建项目

        =>加入服务引用


    5、配置client

        =>加入时微软自己主动配置

    <?xml version="1.0" encoding="utf-8" ?

    > <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="WSHttpBinding_IW" /> </wsHttpBinding> </bindings> <client> <!--指定用于调用服务时,端点--> <endpoint address="http://localhost:5210/W/serviceName" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IW" contract="WService.IW" name="WSHttpBinding_IW"> <identity> <userPrincipalName value="DUHUIFENGliman" /> </identity> </endpoint> </client> </system.serviceModel> </configuration>



    6、使用client

        =>

    using System;
    namespace ConsoleApplication
    {
        class Program
        {
            static void Main(string[] args)
            {
                WService.WClient w = new WService.WClient();
                string result = w.HelloWorld();
                Console.WriteLine(result);
                w.Close();
    
                Console.ReadKey();
            }
        }
    }
    




查看全文
  • 相关阅读:
    redis skiplist性能实验
    python批量插mysql 2种方法 对比 装饰器timer
    数仓 & 数据湖小结
    mongo 增量同步之 MongoShake(3) kafka python处理kafka oplog mongoUtils
    mongo 增量同步之 MongoShake(2) kafka json to python json
    python swich case
    mongodb 增量同步之 MongoShake(1)
    redis scan & kyes p*
    SpringContextUtils Spring 工具类
    Google EventBus使用详解
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/10676216.html
  • Copyright © 2011-2022 走看看