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);
}
}

浙公网安备 33010602011771号