对象,对象集合的简单Xml序列化与反序列化 【实用代码,含泛型方法】
来源:互联网 发布:淘宝吉他店铺 编辑:程序博客网 时间:2024/05/11 05:22
对象,对象集合的简单Xml序列化与反序列化
本文描述如何使用CLR中的StringWriter,XmlSerializer将对象, 对象集合序列化为Xml格式的字符串, 同时描述如何进行反序列化.
C#版本: C# 3.0
开发环境: VS 2008
主要方法:
定义一个用于测试的实体类: UserInfo
编写测试子程序:
C#版本: C# 3.0
开发环境: VS 2008
主要方法:
复制 保存
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Xml;using System.Xml.Serialization;namespace ConsoleApplication2{ public class SimpleSerializer { /// <summary> /// 序列化对象 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="t">对象</param> /// <returns></returns> public static string Serialize<T>(T t) { using (StringWriter sw = new StringWriter()) { XmlSerializer xz = new XmlSerializer(t.GetType()); xz.Serialize(sw, t); return sw.ToString(); } } /// <summary> /// 反序列化为对象 /// </summary> /// <param name="type">对象类型</param> /// <param name="s">对象序列化后的Xml字符串</param> /// <returns></returns> public static object Deserialize(Type type, string s) { using (StringReader sr = new StringReader(s)) { XmlSerializer xz = new XmlSerializer(type); return xz.Deserialize(sr); } } }}
定义一个用于测试的实体类: UserInfo
复制 保存
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml.Serialization;namespace ConsoleApplication2{ [Serializable] public class UserInfo { private int m_UserId; [XmlElement("userId")] public int UserId { get { return m_UserId; } set { m_UserId = value; } } private string m_UserName; [XmlElement("userName")] public string UserName { get { return m_UserName; } set { m_UserName = value; } } }}
编写测试子程序:
复制 保存
using System;using System.Collections.Generic;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { Program.TestOne(); Console.WriteLine(string.Empty); Program.TestTwo(); Console.WriteLine(string.Empty); Program.TestThree(); Console.WriteLine(string.Empty); Program.TestFour(); } public static void TestOne() { UserInfo info = new UserInfo() { UserId = 1, UserName = "Guozhijian" }; Console.WriteLine(SimpleSerializer.Serialize<UserInfo>(info)); } public static void TestTwo() { List<UserInfo> list = new List<UserInfo>(); list.Add(new UserInfo() { UserId = 1, UserName = "Guozhijian" }); list.Add(new UserInfo() { UserId = 2, UserName = "Zhenglanzhen" }); Console.WriteLine(SimpleSerializer.Serialize<List<UserInfo>>(list)); } public static void TestThree() { string s = SimpleSerializer.Serialize<UserInfo>(new UserInfo() { UserId = 1, UserName = "Guozhijian" }); UserInfo info = SimpleSerializer.Deserialize(typeof(UserInfo), s) as UserInfo; Console.WriteLine(info.UserId.ToString() + ", " + info.UserName); } public static void TestFour() { List<UserInfo> list = new List<UserInfo>(); list.Add(new UserInfo() { UserId = 1, UserName = "Guozhijian" }); list.Add(new UserInfo() { UserId = 2, UserName = "Zhenglanzhen" }); string s = SimpleSerializer.Serialize<List<UserInfo>>(list); List<UserInfo> newList = SimpleSerializer.Deserialize(typeof(List<UserInfo>), s) as List<UserInfo>; foreach (var info in newList) { Console.WriteLine(info.UserId.ToString() + ", " + info.UserName); } } }}
- 对象,对象集合的简单Xml序列化与反序列化 【实用代码,含泛型方法】
- 对象,对象集合的简单Xml序列化与反序列化
- 对象,对象集合的简单Xml序列化与反序列化(非原创)
- C#中对象,对象集合的简单Xml序列化与反序列化(已测试)
- C#对象的 Xml序列化与反序列化
- Xml与对象之间的序列化、反序列化
- 对象与XML,序列化与反序列化
- 对象序列化反序列化为xml
- xml类对象序列化与反序列化
- XStream 通过对象流进行对象与xml的序列化和反序列化
- C#序列化与反序列化对象XML和JSON 详细代码工具
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- .NET对象的XML序列化和反序列化
- C# 对象的xml序列化和反序列化
- 对象的Xml序列化和反序列化
- 对象的xml序列化、反序列化
- 这个奥运模板不侵权吧?
- 祝贺csdn换装
- 表格列的拖动
- 表格行拖动
- WIN API-VFP更改Windows的区域选项:(长)日期格式(分隔符),时间格式(分隔符)[参考:控制面板-区域和语言选项-区域选项]
- 对象,对象集合的简单Xml序列化与反序列化 【实用代码,含泛型方法】
- 用GDB调试程序
- Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法
- 如何向 ActiveX 控件添加工具栏和工具提示
- 用CSS自定义博客链接字体及链接下划线的样式
- System Design with SystemC——学习笔记2
- Heritrix扩展和定制的配置操作
- 网卡知识(MAC 层 PHY层)
- 精通COBOL--16.4.1 伪会话程序的基本概念