zoukankan      html  css  js  c++  java
  • .Net 序列化和反序列化SerializerHelper

      开始以为SerializerHelper类是项目中已包含的,后来在别的解决方案中测试代码才发现SerializerHelper类是自己写的。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Text;
    using System.IO;
    using System.Xml.Serialization;
    using Newtonsoft.Json;
    
    /// <summary>
    /// SerializerHelper 的摘要说明
    /// </summary>
    public static class SerializerHelper
    {
        /// <summary>
        /// 反序列化XML文件
        /// </summary>
        public static T LoadFromXmlFile<T>(string filepath) where T : class
        {
            using (FileStream stream = new FileStream(filepath, FileMode.Open, FileAccess.Read))
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                return (T)serializer.Deserialize(stream);
            }
        }
    
        /// <summary>
        /// 反序列化XML字符串
        /// </summary>
        public static T LoadFromXmlString<T>(string xml) where T : class
        {
            XmlSerializer serializer = new XmlSerializer(typeof(T));
            byte[] bytes = Encoding.UTF8.GetBytes(xml);
    
            using (MemoryStream stream = new MemoryStream(bytes))
            {
                return (T)serializer.Deserialize(stream);
            }
        }
    
        /// <summary>
        /// 序列化XML对象
        /// </summary>
        public static string SaveToXmlString<T>(T entity) where T : class
        {
            using (MemoryStream stream = new MemoryStream())
            {
                XmlSerializer serializer = new XmlSerializer(typeof(T));
                serializer.Serialize(stream, entity);
                return Encoding.UTF8.GetString(stream.ToArray());
            }
        }
    
        /// <summary>
        /// 序列化Json对象
        /// </summary>
        public static string ToJsonString(object obj)
        {
            return ToJsonString<object>(obj);
        }
    
        /// <summary>
        /// 序列化Json对象
        /// </summary>
        public static string ToJsonString<T>(T obj) where T : class
        {
            string text = JsonConvert.SerializeObject(obj);
            return text;
        }
    
        /// <summary>
        /// 反序列化Json字符串
        /// </summary>
        public static T ToJsonObject<T>(string text) where T : class
        {
            T obj = (T)JsonConvert.DeserializeObject(text, typeof(T));
            return obj;
        }
    }

     Newtonsoft.Json.dll的下载地址(找了半天不知道在哪里添加附件所以只能放我上传的路径了):

    https://files.cnblogs.com/files/swjian/Newtonsoft.Json.rar
  • 相关阅读:
    命令用法示例
    Elastic:用Docker部署Elastic栈
    Elastic:使用Heartbeat进行Uptime监控
    Elastic:如何在一个机器上同时模拟多个node
    Elastic 使用索引生命周期管理实现热温冷架构
    Logstash:运用jdbc_streaming来丰富我们的数据
    Logstash:多个配置文件(conf)
    Logstash:处理多个input
    使用 Logstash 和 JDBC 确保 Elasticsearch 与关系型数据库保持同步
    Logstash:把MySQL数据导入到Elasticsearch中
  • 原文地址:https://www.cnblogs.com/swjian/p/7866922.html
Copyright © 2011-2022 走看看