一、得到類例項在記憶體中的大小。
1、首先物件要標記可系列化,再進行二進位制序列化,相關程式碼
public static long GetSize(object obj) { if (obj == null) return 0; using (var stream = new MemoryStream()) { var formatter = new BinaryFormatter(); formatter.Serialize(stream, obj); return stream.Length; } }
2、示例說明,一個簡單的沒有資料的物件就有520個位元組
二、把二進位制序列化轉為字串
備註:BinaryFormatter
在 .NET Core 和 .NET 5+ 中已被棄用
public static string ConvertToSerializedString(object obj) { BinaryFormatter formatter = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream()) { formatter.Serialize(ms, obj); byte[] bytes = ms.ToArray(); return Encoding.UTF8.GetString(bytes); } }