把类序列化成XML以及反序列化代码参考

简介:
 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Text; 
  5. using System.IO; 
  6. using System.Xml.Serialization; 
  7.  
  8. namespace ConsoleTest 
  9.     class Program 
  10.     { 
  11.         static void Main(string[] args) 
  12.         { 
  13.             clsTest c = new clsTest(); 
  14.             c.stringvalue = "rrrrrr"
  15.             string s = ToXml<clsTest>(c); 
  16.             clsTest c1 = FromXml <clsTest>(s); 
  17.             c1.ToString(); 
  18.         } 
  19.  
  20.         static public string ToXml<T>(T c) where T : class 
  21.         { 
  22.             string strXml = string.Empty; 
  23.             try 
  24.             { 
  25.                 MemoryStream ms = new MemoryStream(); 
  26.                 XmlSerializer xml = new XmlSerializer(typeof(T)); 
  27.                 xml.Serialize(ms, c); 
  28.                 byte[] arr = ms.ToArray(); 
  29.                 strXml = Encoding.UTF8.GetString(arr, 0, arr.Length); 
  30.                 return strXml; 
  31.             } 
  32.             catch (Exception ex) 
  33.             { 
  34.                 throw
  35.             } 
  36.         } 
  37.  
  38.         /// <summary> 
  39.         ///从Xml字符串读取属性值 
  40.         /// </summary> 
  41.         static public T FromXml<T>(string XMLString) where T : class 
  42.         { 
  43.             MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(XMLString)); 
  44.             XmlSerializer xml = new XmlSerializer(typeof(clsTest)); 
  45.  
  46.             T c = xml.Deserialize(ms) as T; 
  47.             return c; 
  48.  
  49.         } 
  50.     } 
  51.  
  52.     public class clsTest 
  53.     { 
  54.         public int intvalue = 0; 
  55.         public string stringvalue = ""
  56.         public DateTime dt = DateTime.Now; 
  57.  
  58.         public override string ToString() 
  59.         { 
  60.             Console.WriteLine(intvalue); 
  61.             Console.WriteLine(stringvalue); 
  62.             Console.WriteLine(dt); 
  63.             return base.ToString(); 
  64.         } 
  65.     } 
  66.  

 
















本文转自cnn23711151CTO博客,原文链接:http://blog.51cto.com/cnn237111/603220 ,如需转载请自行联系原作者




相关文章
|
11天前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
27 1
|
8天前
|
存储 Java
序列化流 ObjectInputStream 和 ObjectOutputStream 的基本使用【 File类+IO流知识回顾④】
这篇文章介绍了Java中ObjectInputStream和ObjectOutputStream类的基本使用,这两个类用于实现对象的序列化和反序列化。文章解释了序列化的概念、如何通过实现Serializable接口来实现序列化,以及如何使用transient关键字标记不需要序列化的属性。接着,通过示例代码演示了如何使用ObjectOutputStream进行对象的序列化和ObjectInputStream进行反序列化。
序列化流 ObjectInputStream 和 ObjectOutputStream 的基本使用【 File类+IO流知识回顾④】
|
7天前
|
存储 XML JSON
用示例说明序列化和反序列化
用示例说明序列化和反序列化
|
15天前
|
JSON fastjson Java
niubility!即使JavaBean没有默认无参构造器,fastjson也可以反序列化。- - - - 阿里Fastjson反序列化源码分析
本文详细分析了 Fastjson 反序列化对象的源码(版本 fastjson-1.2.60),揭示了即使 JavaBean 沲有默认无参构造器,Fastjson 仍能正常反序列化的技术内幕。文章通过案例展示了 Fastjson 在不同构造器情况下的行为,并深入探讨了 `ParserConfig#getDeserializer` 方法的核心逻辑。此外,还介绍了 ASM 字节码技术的应用及其在反序列化过程中的角色。
42 10
|
15天前
|
存储 Java 开发者
Java编程中的对象序列化与反序列化
【9月更文挑战第20天】在本文中,我们将探索Java编程中的一个核心概念——对象序列化与反序列化。通过简单易懂的语言和直观的代码示例,你将学会如何将对象状态保存为字节流,以及如何从字节流恢复对象状态。这不仅有助于理解Java中的I/O机制,还能提升你的数据持久化能力。准备好让你的Java技能更上一层楼了吗?让我们开始吧!
|
6天前
|
JSON 安全 编译器
扩展类实例的序列化和反序列化
扩展类实例的序列化和反序列化
14 0
|
12天前
|
XML Dubbo Java
分布式-序列化,反序列化
分布式-序列化,反序列化
|
2月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
2月前
|
存储 开发框架 .NET
解锁SqlSugar新境界:利用Serialize.Linq实现Lambda表达式灵活序列化与反序列化,赋能动态数据查询新高度!
【8月更文挑战第3天】随着软件开发复杂度提升,数据查询的灵活性变得至关重要。SqlSugar作为一款轻量级、高性能的.NET ORM框架,简化了数据库操作。但在需要跨服务共享查询逻辑时,直接传递Lambda表达式不可行。这时,Serialize.Linq库大显身手,能将Linq表达式序列化为字符串,实现在不同服务间传输查询逻辑。结合使用SqlSugar和Serialize.Linq,不仅能够保持代码清晰,还能实现复杂的动态查询逻辑,极大地增强了应用程序的灵活性和可扩展性。
97 2
|
23天前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第12天】在Java的世界里,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何通过实现Serializable接口来标记一个类的对象可以被序列化,并探索ObjectOutputStream和ObjectInputStream类的使用,以实现对象的写入和读取。我们还将讨论序列化过程中可能遇到的问题及其解决方案,确保你能够高效、安全地处理对象序列化。

相关课程

更多
下一篇
无影云桌面