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
  • 相关阅读:
    网站测试中如何做好安全性测试
    Web安全性测试总结
    文件上传验证绕过技术总结
    Burp Suite使用介绍
    Burpsuite教程与技巧之HTTP brute暴力破解
    burpsuite绕过本地javascripte上传文件
    文件上传漏洞演示脚本之js验证
    上传验证绕过
    Burp Suite详细使用教程
    关于post和get传递参数的区别
  • 原文地址:https://www.cnblogs.com/txwtech/p/15097708.html
Copyright © 2011-2022 走看看