
下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
public static class JsonSerializer { private static ITracing _tracing = TracingManager.GetTracing(typeof(JsonSerializer)); /// <summary> /// 将指定对象序列化为 JavaScript 对象表示法 (JsON) 数据,并将生成的 JsON 写入流中。 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="stream">流对象</param> /// <param name="obj">序列化对象</param> public static voID Serialize<T>(Stream stream,T obj) { JsonSerializeProxy<T>.Default.Serialize(stream,obj); } /// <summary> /// 将指定对象序列化为 JavaScript 对象表示法 (JsON) 数据,并返回对应的字符串。 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="obj">序列化对象</param> /// <returns>JavaScript 对象表示法 (JsON) 字符串</returns> public static string Serialize<T>(T obj) { using (MemoryStream ms = new MemoryStream()) { JsonSerializeProxy<T>.Default.Serialize(ms,obj); string JsonStr = EnCoding.UTF8.GetString(ms.ToArray()); _tracing.InfoFmt("{0} Json serialize result: {1}",typeof(T).ToString(),JsonStr); return JsonStr; } } public static T DeSerialize<T>(string JsonStr) { return JsonSerializeProxy<T>.Default.DeSerialize(JsonStr); } } public class JsonSerializeProxy<T> { private static Readonly JsonSerializeProxy<T> _default = new JsonSerializeProxy<T>(); private DataContractJsonSerializer _serializer; public static JsonSerializeProxy<T> Default { get { return _default; } } private JsonSerializeProxy() { _serializer = new DataContractJsonSerializer(typeof(T)); } public voID Serialize(Stream stream,T obj) { _serializer.WriteObject(stream,obj); } /// <summary> /// 将JsON字符串反序列化为对象 /// </summary> /// <param name="JsonStr">Json字符串</param> /// <returns></returns> public T DeSerialize(string JsonStr) { MemoryStream ms = new MemoryStream(EnCoding.UTF8.GetBytes(JsonStr)); T obj = (T)_serializer.Readobject(ms); return obj; } } 以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的json 序列化与反序列化C#类全部内容,希望文章能够帮你解决json 序列化与反序列化C#类所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)