WCF服务编程-HelloWorld
WCF方面的HelloWorld例子网上已经很多了。再写这个显得有些“Out”了,不过只是作为笔记写一下。本篇使用的场景是从网上看到的:WCF服务端创建一个服务并公开地址。WCF客户端访问该地址并发送字符串数据。服务端收到数据之后组合一个新的字符串数据并返回给客户端显示。
下图是运行时的效果,源码在此下载。
项目结构及开发步骤
本示例中所有的项目都是采用类库的方式创建的,在开发过程中需要手工去添加System.ServiceModel组件和命名空间。Visual Studio 2005/2008有专门创建WCF的模板,如果为了省事的话也可以直接使用该模板。以下是简单的在开发步骤及说明。
第一步 创建服务协定(Interface)
Cbcye.Contract 用于创建服务的协定(契约),该协定中描述了服务提供的方法集,本示例只创建了一个GetString的方法。该协定需要在服务端和客户端都实现。
最开始学的时候对这个服务端和客户端都需要实现服务协定不是很理解,以为如果通过DLL引用的方式来实现服务协定共享的话那么是不是会限制WCF的应用范围,现在了解到其实服务的协定是可以通过WSDL来描述的,那就是说像Web Service一样,其他非WCF的应用程序也可以使用。












第二步 根据服务协定实现服务(具体是做什么的)
Cbcye.Service 用于创建服务,就是根据服务协定实现服务的具体方法,比如本示例中的使用









第三步 创建承载服务的应用程序(服务在哪运行)
Cbcye.ServiceConsoleHost 用于承载服务,就是该服务是由哪个应用程序来运行的。本示例中采用Windows控制台应用程序来承载服务

服务的配置信息存放到App.Config里

































第四步 创建客户端调用服务
Cbcye.Client 用于消费WCF服务端提供出来的服务,由于客户端也需要实现服务协定(第一步创建的)因此需要在服务端创建代理类用于实现协定。
客户端代理类代码

















客户端调用程序代码


















客户端应用程序配置









总结
Ok,第一个WCF应用程序已经实现完了,本程序为了简便开发过程,将WCF的配置信息都放到了App.Config来配置。也体现了WCF框架的高效和灵活性。WCF基本概念请参见《WCF服务编程-基础》
posted on 2009-06-02 16:19 Gary Zhang 阅读(6369) 评论(3) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!