zoukankan      html  css  js  c++  java
  • WindowForm+WCF的简单开发流程

    参考:http://www.cnblogs.com/huangxincheng/p/4558747.html  十五天精通WCF——第一天 三种Binding让你KO80%的业务

    理论:WCF的通讯方式基于HTTP协议,传输消息为soap

    1、接口

    第一步需要定义一个接口

    并不知道不定义该接口是否可行,接口既然是作为一种行为规范,所以不定义应该也是可行的

    注意:一定要引入 System.ServiceModel;

     1   using System.Runtime.Serialization;
     2   using System.ServiceModel;
     3   
     4   namespace MyService
     5   {
     6       [ServiceContract] //只是接口或类在应用程序中定义的服务协议 ——可以理解为该标记将类或接口设置为服务协议
     7       public interface IHomeService
     8       {
     9           [OperationContract] //指定方法定义一个操作,该操作是该协议的一部分 ——该标记将该方法定义为协议中必须实现的
    10          int GetLength(string name);
    11      }
    12  }

    2、实现类

    有接口就一定会有实现该接口的类

    注意:引用 System.Messaging; System.Threading;

     1 using System;
     2 using System.Messaging;
     3 using System.Threading;
     4 
     5 namespace MyService
     6 {
     7     public class HomeService : IHomeService
     8     {
     9         public int GetLength(string name)
    10         {
    11             return name.Length;
    12         }
    13     }
    14 }

    3、启动服务

    到这一步,WCF可以说基本配置成型,但还不能被外部程序调用

    目前你可以在WCF中添加一个Form.cs调用之前实现的方法,也可按找参考文章中的做法

    具体看需求

    4、配置config文件

    完成这一步,WCF将可以被外部程序调用

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.serviceModel>
        <bindings>
          <netTcpBinding>
            <binding name="IHomeServiceBinding" />
          </netTcpBinding>
        </bindings>
    
        <behaviors>
          <serviceBehaviors>
            <behavior name="">
              <serviceMetadata httpGetEnabled="true" httpGetUrl="WCF链接地址" />  <!--设置可以被远程调用-->
              <serviceDebug includeExceptionDetailInFaults="true" />  
            </behavior>
          </serviceBehaviors>
        </behaviors>
    
        <services>
          <service name="MyService.HomeService">
            <endpoint address="http://127.0.0.1:1920/HomeService" binding="basicHttpBinding" contract="MyService.IHomeService">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
    
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://127.0.0.1:1920"/>
              </baseAddresses>
            </host>
          </service>
        </services>
    
      </system.serviceModel>
    </configuration>

    5、通过WindowForm添加服务引用调用WCF

    VS中与添加Web Service操作相同。添加成功后将会在App.config中自动配置节点。

  • 相关阅读:
    Dapper缓冲的真正含义
    css字体变瘦,窄
    打印request的信息
    部分浏览器cookie无法传输cookie,谷歌51-66版本
    Vue点击div以外的地方使div消失
    MybatisPlus模糊查询(like),查询不到中文,却可以查询到英文和数字的一种解决办法
    看起来很唬人,然而却简单实用的CAP理论
    做业务系统研发如何做到认真负责?
    聊聊关于创业公司招聘技术负责人
    [系列] Go
  • 原文地址:https://www.cnblogs.com/Z-onee/p/6543155.html
Copyright © 2011-2022 走看看