連載
バイナリシステムでオブジェクトを転送する方法??シリアライゼーション!次に、逆シリアル化をバックハンドします〜
直接コーディング
1. jsを直接転送できるため、人気のあるjson
JsonHelperヘルプクラス
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using Newtonsoft.Json;
namespace 序列化
{
class JsonHelper
{
#region //第三方的比微软更快<!!!双方的版本一定要一致>
/// <summary>
/// Newtonsoft.Json;库的 JsonConvert.SerializeObject
/// 将对象序列化--》第三方库 !!!!!!!一定要注意《版本》的一致 不然会出错
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string ToJson<T>(T obj) //一定要注意《版本》的一致 不然会出错
{
return JsonConvert.SerializeObject(obj);
}
/// <summary>
/// Newtonsoft.Json 反序列话
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content"></param>
/// <returns></returns>
public static T ToObject<T>(string content)
{
return JsonConvert.DeserializeObject<T>(content);
}
#endregion
#region //序列化微软官方
/// <summary>
/// 微软官方序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string ObjectToStirng<T>(T obj) //一定要注意《版本》的一致 不然会出错
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(obj);
}
/// <summary>
/// 微软官方反序列话
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="content"></param>
/// <returns></returns>
public static T StringToObject<T>(string content)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(content);
}
#endregion
}
}
2.テストを呼び出す
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 序列化
{
class Node
{
public int num { get; set; }
public string name { get; set; }
}
class Program
{
static void Main(string[] args)
{
//微软方法测试
List<Node> nodes = new List<Node>()
{
new Node(){ num=1,name="zhazha"},
new Node(){num=2 ,name="zhazha3"}
};
var tt=JsonHelper.ObjectToStirng<List<Node>>(nodes);
Console.WriteLine(tt);
List<Node> nodes1 = JsonHelper.StringToObject<List<Node>>(tt);
//第三方更快,测试
var tt2 = JsonHelper.ToJson<List<Node>>(nodes);
Console.WriteLine(tt2);
List<Node> nodes2 = JsonHelper.ToObject<List<Node>>(tt2);
}
}
}
その他のシリアル化コード
![ここに画像の説明を挿入](https://img-blog.csdnimg.cn/20200330205224508.png