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

  

posted @ 2024-12-02 09:30  寻天崖子  阅读(12)  评论(0编辑  收藏  举报