C# 獲取一個對象所占內存的大小


 

        /// <summary>
        /// 獲取一個對象所占內存的大小
        /// </summary>
        /// <typeparam name="T">類型</typeparam>
        /// <param name="t">實例</param>
        /// <returns>長度(字節數)</returns>
        public static long GetObjectByte<T>(T t) where T : class
        {
            DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(T));
            using (MemoryStream stream = new MemoryStream())
            {
                formatter.WriteObject(stream, t);
                return stream.Length;
            }
        }

  

如果想獲取對象的json串,可將上述方法修改一下,就可以將對象序列化為json字符串了。

string result = System.Text.Encoding.UTF8.GetString(stream.ToArray());
return result;

 

如:

        /// <summary>
        /// 獲取一個對象json字符串
        /// </summary>
        /// <typeparam name="T">類型</typeparam>
        /// <param name="t">實例</param>
        /// <returns>json字符串</returns>
        public static string GetObjectByte<T>(T t) where T : class
        {
            DataContractJsonSerializer formatter = new DataContractJsonSerializer(typeof(T));
            using (MemoryStream stream = new MemoryStream())
            {
                formatter.WriteObject(stream, t);
                string result = System.Text.Encoding.UTF8.GetString(stream.ToArray());
                return result;
            }
      }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM