C#--得到对象在内存中的大小和把内存中的字节转换为字符串
一、得到类实例在内存中的大小。
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); } }