控制台程序的作用_跟着我学WCF程序第二天:定义一个WCF程序

一、定义服务契约

ServiceContract特性:该特性可被用来作用于子类或者接口之上,并允许重复声明。

OperationContract特性:只有定义了该特性的方法才会被放入服务之中。

具体代码实现:

l 首先在VS中新建一个类库:

188393abe2a6432f101cf4fbf0d71b4c.png

新建类库

l 创建一个接口文件IHelloService:

181f0ff268c39ce30a078d76582291ee.png

创建接口文件

l 文件中添加引用System.ServiceModel

dda2aab47c135a48d1aff5f6b8758a81.png

添加引用

l 然后在接口文件上方加入using System.ServiceModel;

888847ab95831845bcf9abdfed89bad8.png

引入命名空间

l 在接口上方定义服务契约(ServiceContract),然后在接口方法上定义操作契约(OperationContract)

7baa8cb16e577ec38daa2df5d7165ec8.png

定义契约

l 添加一个实现类实现IHelloService接口

d8a705cac28ea4455cd5b6ee9c9c6d6b.png

添加实现类

l 实现接口的方法SayHello()

c9929f45816fdfbdb91c9f681e818169.png

实现方法

二、创建宿主程序

ServiceHost类型:当IIS或者WAS作为宿主程序时,IIS和WAS会自动创建ServiceHost类型

手动创建的基本语法public ServiceHost(Type ServiceType,params Uri[] baseAddress);

具体代码如下(控制台应用程序):

l 解决方案里面添加项目为控制台应用程序:

29c088a8bd23484ad8c5e1bfb9c2b4f5.png

添加控制台应用程序

l 如第一个添加引用(System.ServiceModel)

5669c414e23f2fa19551d03cf8c141af.png

添加引用

l 由于要在宿主程序绑定对象,所以还需添加引用using

System.ServiceModel.Channels

418182e577818bf2401d4e4c7556a741.png

添加引用

l 在项目中定义一个宿主程序,包括定义基地址、服务绑定、以及契约接口。

fa0b20287222ca6e77112f3b11cece98.png

定义宿主程序

l 宿主程序还需定义销毁服务对象的方法

811b16a697bf7eed07a878e415f8d228.png

销毁服务对象

l 定义基地址,服务契约实现类型、服务契约接口以及服务绑定

e5ef529464fd715f68602ab5d05d4427.png

定义基地址

l 注意要添加HelloService项目引用,构造服务对象:

94b536d75df4a9a980da99b0a34c5ccd.png

添加引用

l 定义打开服务的方法

b487abd898dde560865a87ad363175a4.png

定义打开服务的方法

l 注意由于我们创建ServiceHost对象没有实例化,所以我们需要对对象进行封装

c9ca679009add61bd16073b40bf47a01.png

l 添加构造方法调用创建宿主程序的方法

585ccd940f7b0796db147668cbf1fa99.png

l 主程序中调用服务开启方法

6d7ca631b465709272514f851b34e8ed.png

l 生成并启动服务

ccef4bb25db59d534e6910ae9339abdf.png

三、创建客户端程序访问服务

l 添加新的控制台应用程序,命名为HelloClient

016f66b7cb04851d0f6ec4ede8fd74e0.png

l 还需添加以下引用:System.ServiceModel、System.ServiceModel.Channels、HelloService,然后using进行

f62781a2e1a2f570c40e70451a7f5b30.png

加入以下代码:

055d94b902b15126b0c2e5db4f6ab640.png

硬编码定义服务契约

397b98d40858c1f914732dec8efe8c7f.png

然后在主程序中利用代理调用服务

ab4c72acbe77b56f7fee19b381c2909f.png

成功示例:

5793db6ad8b19e594f3d46f66dc3644b.png

这就是第二天的全部内容,到此你也可以定义你的第一个WCF程序啦。要坚持下去哦!如果你觉得对您有用的话,可以点赞、收藏、转发哦!谢谢大家的支持哦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值