This commit is contained in:
milimoe 2023-07-24 22:49:40 +08:00
parent bdef920366
commit dccedd3546
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 50 additions and 20 deletions

54
Main.cs
View File

@ -1,6 +1,52 @@
using System.Data; using System.Collections;
using Milimoe.FunGame.Testing.Solutions; 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"]); 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<Hashtable>(json, options) ?? new();
User u2 = NetworkUtility.JsonDeserializeFromHashtable<User>(hashtable2, "user") ?? Factory.GetUser();
Room r2 = NetworkUtility.JsonDeserializeFromHashtable<Room>(hashtable2, "room") ?? Factory.GetRoom();
System.Console.WriteLine(u2.Username + " 进入了 " + r2.Roomid + " 房间");

View File

@ -6,22 +6,6 @@ namespace Milimoe.FunGame.Testing.Solutions
{ {
public class DataTableSolution 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<DataTable>(json, jsonobj.Options);
return dt2 ?? new();
}
} }
} }