WCF序列学习一:WCF基础知识

      WCF(Windows Communication Foundation)是基于Windows平台下开发和部署服务的软件开发包。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于 Internet;以宿主程序而论,可以以ASP.NET,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML, Kerberos,X509,用户/密码,自定义等多种标准与模式。

      学习WCF,首先需要了解WCF的ABC概念,A指Address,即服务地址;B指Binding,即通讯方式,C指Contract,即服务契约,也就是客户端和服务端都必须遵守的接口。而ABC组合起来代表的意思就是 (ABC)终结点:描述了一个服务的地址、绑定类型(是http还是tcp等)、服务契约(服务约定接口)。

       创建wcf服务分为几个步骤:

       1.创建wcf服务:

             

        2.创建服务契约:

          

 // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
    [ServiceContract] //标志当前接口为服务契约
    public interface IService1
    {
        [OperationContract]//标志当前方法为操作契约
        Color GetDatas(int value);

    }

   [DataContract]
    public enum Color
    {
        [EnumMember]
        Red = 0,
        [EnumMember]
        Orange = 1
    }

        3.实现服务契约:

// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“Service1”。
    public class Service1 : IService1
    {
        Color GetDatas(int value)

       {
            return string.Format("You entered: {0},Now DateTime:{1}", value, DateTime.Now.ToString());
        }

  }

         

        4.客户端服务引用:

  

     5.客户端调用:

    using (ChannelFactory<ServiceRef.IService1> channelFactory = new ChannelFactory<ServiceRef.IService1>("BasicHttpBinding_IService1"))
            {
                Response.Write("<br/>------------endpointConfigurationName is :" + channelFactory.Endpoint.Name);
                Response.Write("<br/>------------endpoint Address is :" + channelFactory.Endpoint.Address);
                ServiceRef.IService1 calculator = channelFactory.CreateChannel();
                Response.Write("<br/>" + calculator.GetData(DateTime.Today.Year));
                ServiceRef.CompositeType compositeType = calculator.GetDataUsingDataContract(new ServiceRef.CompositeType() { BoolValue = true, StringValue = "This Is Test," + DateTime.Now.ToString() });
                Response.Write("<br/>" + compositeType.StringValue);
            }

 

 

BasicHttpBinding_IService1 为AppConfig的binding节点BasicHttpBinding_IService1

wcf支持两种绑定 BasicHttpBinding和NetTcpBinding绑定

posted @ 2013-06-07 22:30  泥巴大侠  阅读(152)  评论(0)    收藏  举报