如题
很多时候使用牛顿软件(Newtonsoft.Json)。项目中的添加方式是使用NuGet,具体操作简单,此处略(实在不会,网上一抓一大把)
序列化和反序列化,仅以下例说明:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; namespace ConsoleApp1 { class Program { static void Main(string[] args) { MyMessage msg = new MyMessage("Hello World"); Letter letter = new Letter(), 反序列化1; letter.From = "重庆"; letter.To = "安徽"; letter.myMessage = msg;
string json_s1= JsonConvert.SerializeObject(letter); 反序列化1 = JsonConvert.DeserializeObject<Letter>(json_s1);
Console.WriteLine(json_s1); 反序列化1.showme(); Console.ReadKey(); } } class MyMessage { public int Status { get; set; } public int Lenth { get; set; } public string Msg { get; set; } public MyMessage(string m,int s=1) { Status = s; Msg = m; Lenth = Msg is null?0:Msg.Length; } public override string ToString() { return $"The status is {Status},The lenth = {Lenth},The content is {Msg}"; } } class Letter { public string From { get; set; } public string To { get; set; } public MyMessage myMessage; public void showme() { Console.WriteLine($"This letter come from {From},and go to {To}.It is said that:{myMessage.ToString()}"); } } }
运行结果:
1 2 | { "myMessage" :{ "Status" :1, "Lenth" :11, "Msg" : "Hello World" }, "From" : "重庆" , "To" : "安徽" } This letter come from 重庆,and go to 安徽.It is said that:The status is 1,The lenth = 11,The content is Hello World |
例: 基于网络的五子棋对战程序,客户端和服务器消息格式设计(行棋)
enum MyFlag { set, ok, error } class MyMsg { public MyFlag myFlag; public int i, j, c; public MyMsg(MyFlag f, int hang, int lie, int set_color) { myFlag = f; i = hang; j = lie; c = set_color; } }
其中myFlag表示和服务器通讯的操作,枚举型,分为发送给服务器(set),收到服务器成功消息(ok),收到服务器失败消息(error)
i、j、c分别表示发送给服务器的(和服务器返回的)落子位置和颜色。
结合之前的tcp网络编程知识,试开发出完全的消息模式及程序。程序大致如下:
注:棋盘图形部分可以用Graphics对象在表单上直接画图(画圆、画矩形、画直线),上学期windows项目开发,自画报表里讲过。查点资料,略作修改即可。
分类:
上课用内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异