`

C# 序列化和反序列化

    博客分类:
  • C#
 
阅读更多

   

很神奇的一个类,不用序列化到文件中,只序列化到字符串里,然后再反序列出来 ,刚从网上找到,分享一下 

public class SerializeUtilities

    {

        public SerializeUtilities()

        {

            //

            //TODO: 在此处添加构造函数逻辑

            //

        }

 

 

        /// <summary>

        /// 序列化 对象到字符串

        /// </summary>

        /// <param name="obj">泛型对象</param>

        /// <returns>序列化后的字符串</returns>

        public static string Serialize<T>(T obj)

        {

            try

            {

                IFormatter formatter = new BinaryFormatter();

                MemoryStream stream = new MemoryStream();

                formatter.Serialize(stream, obj);

                stream.Position = 0;

                byte[] buffer = new byte[stream.Length];

                stream.Read(buffer, 0, buffer.Length);

                stream.Flush();

                stream.Close();

                return Convert.ToBase64String(buffer);

            }

            catch (Exception ex)

            {

                throw new Exception("序列化失败,原因:" + ex.Message);

            }

        }

 

        public static T Desrialize<T>(T obj, string str)

        {

            try

            {

                obj = default(T);

                IFormatter formatter = new BinaryFormatter();

                byte[] buffer = Convert.FromBase64String(str);

                MemoryStream stream = new MemoryStream(buffer);

                obj = (T)formatter.Deserialize(stream);

                stream.Flush();

                stream.Close();

            }

            catch (Exception ex)

            {

                throw new Exception("反序列化失败,原因:" + ex.Message);

            }

            return obj;

        }

    }

分享到:
评论

相关推荐

    C#序列化和反序列化

    综上所述,"C#序列化和反序列化"这个主题涵盖了如何在C#程序中有效地管理和操作数据的各个方面。通过深入理解这些概念和实践,开发者可以更好地处理数据的保存和传输,提升应用程序的性能和功能。

    C#序列化和反序列化案例.rar

    在这个“C#序列化和反序列化案例”中,我们可以通过提供的代码示例深入理解这两个概念。 首先,序列化是将对象的状态转换为可以存储或传输的数据格式的过程。在C#中,我们可以使用内置的System.Runtime....

    c#序列化和反序列化

    - **序列化与反序列化的工具**:C#提供了几种不同的序列化机制,如BinaryFormatter、SoapFormatter和XML序列化等。 #### 四、示例:使用BinaryFormatter进行序列化 在给定的部分内容中,我们看到了如何使用...

    c# 序列化和反序列化

    在编程领域,序列化和反序列化是两个关键的概念,特别是在C#中。它们用于将对象的状态转换为可存储或可传输的数据格式,以及将这种数据还原为原来的对象。序列化通常用于持久化数据,跨进程通信,网络传输或者保存...

    序列化和反序列化的封装类

    在编程领域,序列化和反序列化是两个关键的概念,特别是在数据存储、网络传输和对象持久化等场景中。它们允许我们将对象的状态转换为字节流(序列化),然后在需要的时候将字节流还原为原来的对象(反序列化)。在C#...

    《C#序列化和反序列化之一-二进制序列化》源代码

    在C#编程中,序列化和反序列化是至关重要的技术,它们允许我们将对象的状态转换为数据流(如字节序列),以便存储或传输,之后再恢复为原来的对象形式。本资源聚焦于C#中的二进制序列化,这是一种效率高、数据紧凑的...

    C#序列化和反序列化XML-读取word

    在.NET框架中,C#提供了一系列的类库用于处理序列化和反序列化,这使得对象的状态能够被转换为数据格式(如XML),以便存储或传输。本篇将深入探讨如何使用C#进行XML序列化和反序列化,并且特别关注如何读取Word文档...

    C#序列化与反序列化(包括复杂xml对象)

    在C#编程中,序列化和反序列化是两个关键的概念,它们主要用于对象状态的持久化和恢复。本文将深入探讨C#中的XML序列化和反序列化技术,包括如何将XML文档解析为对象,以及如何将对象转换回XML文档进行存储。我们将...

    C#通过Socket发送Object对象,序列化,反序列化

    这是一个用C#写的Socket服务器和客户端,当然Socket服务器和客户端不是主要的(有兴趣的朋友可以参考下),主要的内容是介绍如何通过这种Socket方式发送Object对象。 作者博客 http://luyugao.com

    C#序列化和反序列化XML代码实现

    本篇文章将详细讲解如何利用C#的`XmlSerializer`类来实现XML的序列化和反序列化,以及如何处理多级节点和属性。 **XML序列化** XML序列化是将C#对象转换为XML文档的过程。这允许我们把对象的状态保存到文件或通过...

    深入理解C#序列化与反序列化的详解

    在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制。序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的...

    C#序列化和反序列化代码三套

    之前自己开发了一个类似于QQ的程序,服务端和客户端之间以 NetWorkStream 来发送数据,但数据这边整个类对象要发送怎么发送呢 ...我觉得 这三套代码 可以解决一切序列化和反序列化问题了!! 都测试过了,都可以!!!

    C# 各种序列化和反序列化

    在编程世界中,序列化和反序列化是两个至关重要的概念,尤其是在C#这样的面向对象的语言中。它们允许我们将对象的状态转换为数据流,以便存储或传输,然后将这些数据流还原为原来的对象形式。本篇文章将深入探讨C#中...

Global site tag (gtag.js) - Google Analytics