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