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