zoukankan      html  css  js  c++  java
  • WCF简单案例

    1,定义接口层,引用System.ServiceModel

    namespace Contracts
    {
        [ServiceContract(Name = "CalculatorService", Namespace = "http://www.test.com/")]
        public interface ICalculator
        {
            [OperationContract]
            double Add(double x, double y);
    
            [OperationContract]
            double Subtract(double x, double y);
    
            [OperationContract]
            double Multiply(double x, double y);
    
            [OperationContract]
            double Divide(double x, double y);
        }
    }
    

      2,实现接口层,增加接口层引用

    namespace Services
    {
        public class CalculatorService : ICalculator
        {
            public double Add(double x, double y)
            {
                return x + y;
            }
    
            public double Subtract(double x, double y)
            {
                return x - y;
            }
    
            public double Multiply(double x, double y)
            {
                return x * y;
            }
    
            public double Divide(double x, double y)
            {
                return x / y;
            }
        }
    }
    

      3,创建wcf项目,增加配置信息

     <system.serviceModel>
        <services>
          <service name="Services.CalculatorService" behaviorConfiguration="SingleBehavior">
            <endpoint binding="basicHttpBinding" bindingConfiguration="SingleBinding" contract="Contracts.ICalculator"></endpoint>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="SingleBehavior">
              <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <bindings>
          <basicHttpBinding>
            <binding name="SingleBinding" closeTimeout="00:10:00"
                            openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
                            maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
                            allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                            messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                            useDefaultWebProxy="true">
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647"
                  maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            </binding>
          </basicHttpBinding>
        </bindings>
      </system.serviceModel>
    

     Service.svc中指定Service

    <%@ ServiceHost Language="C#" Debug="true" Service="Services.CalculatorService"  %>
    

     

    4,创建服务端

    namespace Client
    {
        class Program 
        {
            static void Main(string[] args)
            {
                var c=new Client();
                var testvalue= c.Add(1, 2);
                Console.WriteLine(testvalue);
            }
        }
    
        public class Client : ClientBase<ICalculator>, ICalculator
        {
            public double Add(double x, double y)
            {
              return  this.Channel.Add(x, y);
            }
    
            public double Subtract(double x, double y)
            {
                return this.Channel.Subtract(x, y);
            }
    
            public double Multiply(double x, double y)
            {
                 return this.Channel.Multiply(x, y);
            }
    
            public double Divide(double x, double y)
            {
                return this.Channel.Divide(x, y);
            }
        }
    }
    

      配置文件编写

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
      <system.serviceModel>
        <client>
          <endpoint address="http://wcf.test.com/Service.svc" binding="basicHttpBinding" bindingConfiguration="SingleBinding"  contract="Contracts.ICalculator" name="SingleBinding" />
        </client>
        <bindings>
          <basicHttpBinding>
            <binding name="SingleBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" sendTimeout="00:10:00" receiveTimeout="00:10:00" >
              <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            </binding>
          </basicHttpBinding>
        </bindings>
      </system.serviceModel>
    </configuration>
    

      

  • 相关阅读:
    单向循环列表(Java实现)
    单链表的实现(Java实现)
    二分查找法(Java实现)
    六大排序算法(Java实现)
    学习python第十天
    学习python第九天
    MapNode
    AtomicReference
    AtomicStampedReference
    尾递归(TailRecursion)
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3543212.html
Copyright © 2011-2022 走看看