zoukankan      html  css  js  c++  java
  • c#字符串序列化-字符串转对象转字符串

    c#字符串序列化-字符串转对象转字符串

    using System;
    using System.IO;
    using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    using System.Xml.Serialization;
    
    namespace Comdll
    {
        public class Serializable_Class
        {
            /// <summary>
            /// 字符串序列化
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static string ObjectToString<T>(T obj)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    IFormatter formatter = new BinaryFormatter();
                    formatter.Serialize(stream, obj);
                    stream.Position = 0;
                    byte[] buffer = new byte[stream.Length];
                    stream.Read(buffer, 0, buffer.Length);
                    return Convert.ToBase64String(buffer);
                }
            }
            /// <summary>
            /// 字符串转对象(Base64编码字符串反序列化为对象)
            /// </summary>
            /// <param name="str">字符串</param>
            /// <returns>对象</returns>
            public static T StringToObject<T>(string str)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    
                    byte[] bytes = Convert.FromBase64String(str);
                    stream.Write(bytes, 0, bytes.Length);
                    stream.Position = 0;
                    IFormatter formatter = new BinaryFormatter();
                    return (T)formatter.Deserialize(stream);
                }
            }
    
            /// <summary>
            /// XML序列化
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="name"></param>
            /// <param name="o"></param>
            public static void XMLserializer<T>(string name, object o)
            {
                using (FileStream stream = new FileStream(name, FileMode.OpenOrCreate))
                {
                    XmlSerializer s = new XmlSerializer(typeof(T));
                    s.Serialize(stream, o);
                }
            }
            /// <summary>
            /// XML 反序列化为Repair
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="name"></param>
            /// <returns></returns>
            public static T XmlReserializer<T>(string name)
            {
                using (FileStream stream = new FileStream(name, FileMode.OpenOrCreate))
                {
                    XmlSerializer s = new XmlSerializer(typeof(T));
                    object o = s.Deserialize(stream);
                    return (T)o;
                }
            }
    
        }
    }
    欢迎讨论,相互学习。 txwtech@163.com
  • 相关阅读:
    Javascript作用域研究(with)
    Javascript判断object还是list/array的类型(包含javascript的数据类型研究)
    Javascript两个感叹号的用法(!!)
    Javascript中两个等于号和三个等于号的区别(==/===)
    IIS配置MP3/MP4/OGG/flv等资源文件访问
    生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)
    记录一次:微信支付申请时,网站不通过/统一驳回的问题解决方法
    C# 扩展系统类方法
    Javascript获取div真实高度
    Jquery获取offsetHeight
  • 原文地址:https://www.cnblogs.com/txwtech/p/15097708.html
Copyright © 2011-2022 走看看