WCF创建讲解.docx

上传人:b****6 文档编号:7796919 上传时间:2023-01-26 格式:DOCX 页数:10 大小:268.87KB
下载 相关 举报
WCF创建讲解.docx_第1页
第1页 / 共10页
WCF创建讲解.docx_第2页
第2页 / 共10页
WCF创建讲解.docx_第3页
第3页 / 共10页
WCF创建讲解.docx_第4页
第4页 / 共10页
WCF创建讲解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

WCF创建讲解.docx

《WCF创建讲解.docx》由会员分享,可在线阅读,更多相关《WCF创建讲解.docx(10页珍藏版)》请在冰豆网上搜索。

WCF创建讲解.docx

WCF创建讲解

WCF实例(带步骤)

WCF实例(带步骤)

、WCF|2010-02-2614:

31:

44阅读31评论0字号:

大中小

以订票为例简单应用wcf

新建一个wcf服务应用程序

在IService1.cs定义服务契约

namespaceWcfDemo

{

    //注意:

如果更改此处的接口名称"IService1",也必须更新Web.config中对"IService1"的引用。

    [ServiceContract]  //服务合同即提供服务的接口或类

    publicinterfaceIService1

    {

        [OperationContract]

        /*增加车票的方法*/

        voidAddTicket(intcount);

        [OperationContract]

        /*购买车票的方法*/

        intBuyTickets(intNum);

        [OperationContract]  //服务契约  即提供服务的实现方法

        /*查询车票的方法*/

      

        intGetRemainingNum();

        //任务:

在此处添加服务操作

    }

    //使用下面示例中说明的数据约定将复合类型添加到服务操作。

    [DataContract]   //数据契约  

    publicclassTicket

    {

        boolboolCount=true;//判断是否还有车票

        inthowmany=10;//还有多少车票

       

        [DataMember]

        /*判断是否还有票*/

        publicboolBoolCalue

        {

            get{returnboolCount;}

            set{

                if(HowMany>0)

                {

                    boolCount=false;

                }

                else

                {

                    boolCount=true;

                }

            }

        }

        [DataMember]

        /*返回票数*/

        publicintHowMany

        {

            get{returnhowmany;}

            set{howmany=value;}

        }

     

    }

}

在Service1.svc中实现契约服务

namespaceWcfDemo

{

    //注意:

如果更改此处的类名“Service1”,也必须更新Web.config和关联的.svc文件中对“Service1”的引用。

    publicclassService1:

IService1

    {  

        TicketT=newTicket();

        /*实现添加票数的方法*/

        publicvoid  AddTicket(intcount)

        {

            T.HowMany=T.HowMany+count;

        }

        /*实现返回票数的方法*/

        publicintGetRemainingNum()

        {

           

            returnT.HowMany;

        }

        /*实现购买车票的方法*/

        publicintBuyTickets(intNum)

        {

            if(T.BoolCalue)

            {

                T.HowMany=T.HowMany-Num;

                return1;

            }

            else

            {

                return0;

            }

           

        }

    }

}

添加宿主程序用于监测服务

添加WinForm项目加入解决方案

界面如下图:

界面上两个按钮:

启动服务按钮:

用于启动wcf服务

停止服务按钮:

用于停止wcf服务

Label:

  用于显示服务相关信息

后台代码为:

应用命名空间usingSystem.ServiceModel;

添加引用wcf服务生成的dll文件

publicpartialclassForm1:

Form

    {

        publicForm1()

        {

            InitializeComponent();

        }

        ServiceHosthost=null;//定义ServiceHost

        privatevoidbutton1_Click(objectsender,EventArgse)

        {

            host=newServiceHost(typeof(WcfDemo.Service1));//WcfDemo.Service1为引用的dll中的服务

            host.Open();//启动服务

            this.label1.Text="服务已启动";

        }

        privatevoidbutton2_Click(objectsender,EventArgse)

        {

            if(host.State!

=CommunicationState.Closed)//判断服务是否关闭

            {

                host.Close();//关闭服务

            }

            this.label1.Text="服务已关闭";

        }

    }

接下来配置app.config

xmlversion="1.0"encoding="utf-8"?

>

   

      

--添加服务-->

        

          

--name必须与代码中的host实例初始化的服务一样  

           behaviorConfiguration行为配置-->

          

            

              

--添加调用服务地址-->

              

//localhost:

8000/"/>

            

            

          

          

--添加契约接口  contract="WcfDemo.IService1"WcfDemo.IService1为契约接口  binding="wsHttpBinding"wsHttpBinding为通过Http调用-->

          

        

        

      

     

--定义CalculatorServiceBehavior的行为-->

     

        

          

            

            

            

          

          

        

        

      

    

程序运行结果:

在服务启动后可通过appConfig中baseAddress节点中的baseAddress地址查看Wcf服务

到这服务以及服务主机都已经创建好了下面该创建测试客户机了!

新建个WinForm程序做为我们的测试客户机

界面两个按钮一个label

购买车票:

调用wcf服务的BuyTickets()方法

查询车票:

调用wcf服务的GetRemainingNum()方法

label用于显示运行信息

为项目添加服务引用地址输入服务主机appconfig中baseAddress地址点击前往(添加服务引用时一点是在服务启动状态下的)

后台代码为:

publicpartialclassForm2:

Form

    {

        publicForm2()

        {

            InitializeComponent();

        }

        ServiceReference1.Service1ClientTClient=newWinFormsClient.ServiceReference1.Service1Client();

        //声明客户端调用

        privatevoidbutton1_Click(objectsender,EventArgse)

        {

            inti=TClient.BuyTickets

(2);//调用WCF中的方法

            if(i==1)

            {

                this.label1.Text="购买成功";

            }

            this.label1.Text+="剩余车票还有"+TClient.GetRemainingNum().ToString();

        }

        privatevoidbutton2_Click(objectsender,EventArgse)

        {

            this.label1.Text="";

            this.label1.Text=TClient.GetRemainingNum().ToString();//调用WCF中的方法

        }

      

    }

点击购买车票时调用wcf的BuyTicket()方法并返回剩余车票的信息

点击查看车票时调用wcf的GetRemainingNum()得到剩余车票信息

运行结果如下:

点击购买车票:

点击查询票数时:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1