我们一起学习WCF 第四篇单通讯和双向通讯
前言:由于个人原因很久没有更新这个系列了,我会继续的更新这系列的文章。这一章是单向和双向通讯。所谓的单向就是只有发送却没有回复,双向是既有发送还有回复。就是有来无往代表单向,礼尚往来表示双向。下面我用一个简单用例图表示一下(其中一个老师很严厉说的话大家都默默接受,另一个则相反)
首先我们先看单向通讯:
第一步:编写服务协定

1 [ServiceContract(Namespace = "singleTrans")] 2 public interface ITeacher 3 { 4 [OperationContract(IsOneWay = true)] 5 void Speak(string message); 6 }
注释1:IsOneWay = true 表示单向通讯,false表示双向通讯
第二步:完成服务协定

1 public void Speak(string message) 2 { 3 Console.WriteLine("老师下达的命令:{0}",message); 4 }
第三步:配置服务器(同前几篇)
第四步:客户端调用运行结果
那么单向通讯就完成了。
现在我们修改一下服务协定

协定 [ServiceContract(Namespace = "singleTrans")] public interface ITeacher { [OperationContract(IsOneWay = true)] string Speak(string message); } 实现 public string Speak(string message) { Console.WriteLine("老师下达的命令:{0}",message); return "保证完成任务"; }
运行结果:
出现错误了所有总结:
启用单向通讯的方法,不能有返回值(void可以),不能有out参数,只允许传入参数
现在我们在来看一下双向协定
把刚刚的IsOneWay = false。然后在次运行看看结果
这回就成功了,既调用了服务,也得到了返回的数据。
这一篇也表面也很简单,但是很多更深的需要自己去理解去想。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?