wcf简单实例Word文件下载.docx

上传人:b****5 文档编号:21353412 上传时间:2023-01-29 格式:DOCX 页数:11 大小:268.58KB
下载 相关 举报
wcf简单实例Word文件下载.docx_第1页
第1页 / 共11页
wcf简单实例Word文件下载.docx_第2页
第2页 / 共11页
wcf简单实例Word文件下载.docx_第3页
第3页 / 共11页
wcf简单实例Word文件下载.docx_第4页
第4页 / 共11页
wcf简单实例Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

wcf简单实例Word文件下载.docx

《wcf简单实例Word文件下载.docx》由会员分享,可在线阅读,更多相关《wcf简单实例Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

wcf简单实例Word文件下载.docx

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

/*查询车票的方法*/

intGetRemainingNum();

//任务:

在此处添加服务操作

}

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

[DataContract]//数据契约

publicclassTicket

boolboolCount=true;

//判断是否还有车票

inthowmany=10;

//还有多少车票

[DataMember]

/*判断是否还有票*/

publicboolBoolCalue

get{returnboolCount;

}

set{

if(HowMany>

0)

boolCount=false;

else

boolCount=true;

/*返回票数*/

publicintHowMany

get{returnhowmany;

set{howmany=value;

在Service1.svc中实现契约服务

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

publicclassService1:

IService1

{

TicketT=newTicket();

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

publicvoidAddTicket(intcount)

T.HowMany=T.HowMany+count;

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

publicintGetRemainingNum()

returnT.HowMany;

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

publicintBuyTickets(intNum)

if(T.BoolCalue)

T.HowMany=T.HowMany-Num;

return1;

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();

//关闭服务

服务已关闭"

接下来配置app.config

<

?

xmlversion="

1.0"

encoding="

utf-8"

?

>

configuration>

system.serviceModel>

services>

!

--添加服务-->

servicename="

WcfDemo.Service1"

behaviorConfiguration="

CalculatorServiceBehavior"

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

behaviorConfiguration行为配置-->

host>

baseAddresses>

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

addbaseAddress="

http:

//localhost:

8000/"

/>

/baseAddresses>

/host>

--添加契约接口contract="

WcfDemo.IService1"

WcfDemo.IService1为契约接口binding="

wsHttpBinding"

wsHttpBinding为通过Http调用-->

endpointaddress="

"

binding="

contract="

/endpoint>

/service>

/services>

--定义CalculatorServiceBehavior的行为-->

behaviors>

serviceBehaviors>

behaviorname="

serviceMetadatahttpGetEnabled="

true"

serviceDebugincludeExceptionDetailInFaults="

false"

/behavior>

/serviceBehaviors>

/behaviors>

/system.serviceModel>

/configuration>

程序运行结果:

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

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

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

界面两个按钮一个label

购买车票:

调用wcf服务的BuyTickets()方法

查询车票:

调用wcf服务的GetRemainingNum()方法

label用于显示运行信息

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

后台代码为:

publicpartialclassForm2:

publicForm2()

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

//声明客户端调用

inti=TClient.BuyTickets

(2);

//调用WCF中的方法

if(i==1)

购买成功"

this.label1.Text+="

剩余车票还有"

+TClient.GetRemainingNum().ToString();

this.label1.Text=TClient.GetRemainingNum().ToString();

//调用WCF中的方法

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

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

运行结果如下:

点击购买车票:

点击查询票数时:

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

当前位置:首页 > 高等教育 > 工学

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

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