From dccedd3546633513e2ed35daa2d237363fb074f3 Mon Sep 17 00:00:00 2001 From: milimoe Date: Mon, 24 Jul 2023 22:49:40 +0800 Subject: [PATCH] =?UTF-8?q?=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Main.cs | 54 ++++++++++++++++++++++++++++++++++++++---- Solutions/DataTable.cs | 16 ------------- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/Main.cs b/Main.cs index 22bdb27..ee18d95 100644 --- a/Main.cs +++ b/Main.cs @@ -1,6 +1,52 @@ -using System.Data; -using Milimoe.FunGame.Testing.Solutions; +using System.Collections; +using System.Data; +using System.Text.Json; +using System.Text.Json.Serialization; +using Milimoe.FunGame.Core.Api.Utility; +using Milimoe.FunGame.Core.Entity; +using Milimoe.FunGame.Core.Library.Common.JsonConverter; -DataTable dt = DataTableSolution.GetDataTable(); +DataSet ds = new(); +DataTable table = new("SampleTable1"); +table.Columns.Add("Id", typeof(int)); +table.Columns.Add("Name", typeof(string)); +table.Columns.Add("Age", typeof(int)); +table.Rows.Add(1, "John", 30); +table.Rows.Add(2, "Jane", 25); +table.Rows.Add(3, "Bob", 40); +ds.Tables.Add(table); -Console.WriteLine(dt.Rows[0]["Name"]); \ No newline at end of file +table = new("SampleTable2"); +table.Columns.Add("Id", typeof(int)); +table.Columns.Add("Name", typeof(string)); +table.Columns.Add("Age", typeof(int)); +table.Rows.Add(1, "John", 30); +table.Rows.Add(2, "Jane", 25); +table.Rows.Add(3, "Bob", 40); +ds.Tables.Add(table); + +JsonSerializerOptions options = new() +{ + WriteIndented = true, + ReferenceHandler = ReferenceHandler.IgnoreCycles, + Converters = { new DateTimeConverter(), new DataTableConverter(), new DataSetConverter(), new UserConverter(), new RoomConverter() } +}; + +Room r = Factory.GetRoom(1294367, "w5rtvh8".ToUpper(), DateTime.Now, Factory.GetUser(), Milimoe.FunGame.Core.Library.Constant.RoomType.Mix, Milimoe.FunGame.Core.Library.Constant.RoomState.Created); +User u = Factory.GetUser(1, "LUOLI", "123123", DateTime.Now, DateTime.Now, "LUOLI@66.COM", "QWQAQW"); + +Hashtable hashtable = new() +{ + { "table", table }, + { "room", r }, + { "user", u } +}; + +string json = JsonSerializer.Serialize(hashtable, options); + +Hashtable hashtable2 = JsonSerializer.Deserialize(json, options) ?? new(); + +User u2 = NetworkUtility.JsonDeserializeFromHashtable(hashtable2, "user") ?? Factory.GetUser(); +Room r2 = NetworkUtility.JsonDeserializeFromHashtable(hashtable2, "room") ?? Factory.GetRoom(); + +System.Console.WriteLine(u2.Username + " 进入了 " + r2.Roomid + " 房间"); \ No newline at end of file diff --git a/Solutions/DataTable.cs b/Solutions/DataTable.cs index 9428466..c186479 100644 --- a/Solutions/DataTable.cs +++ b/Solutions/DataTable.cs @@ -6,22 +6,6 @@ namespace Milimoe.FunGame.Testing.Solutions { public class DataTableSolution { - public static DataTable GetDataTable() - { - DataTable dt = new(); - dt.Columns.Add(new DataColumn("ID", typeof(int))); - dt.Columns.Add(new DataColumn("Name", typeof(string))); - DataRow dr = dt.NewRow(); - dr["ID"] = 1; - dr["Name"] = "Mili"; - dt.Rows.Add(dr); - JsonObject2 jsonobj = new(); - - string json = JsonSerializer.Serialize(dt, jsonobj.Options); - DataTable? dt2 = JsonSerializer.Deserialize(json, jsonobj.Options); - - return dt2 ?? new(); - } } }