对象的xml序列化、反序列化
2011-08-01 09:35
531 查看
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace Demo026
{
class Program
{
static void Main(string[] args)
{
var person = new Person() { Id = 1, Name = "这个测试" };
var orders = new List<Order>()
{
new Order() {Id = 1, PersonId = 1},
new Order() {Id = 211, PersonId = 1},
new Order() {Id = 3, PersonId = 1, OrderDate = DateTime.Today.AddMinutes(89)}
};
person.Orders = orders;
string result = ObjectHelper.XmlSerialize(person);
Console.WriteLine(result);
var test = ObjectHelper.XmlDeserialize<Person>(result);
if (test != null)
{
Console.WriteLine(test.Name);
Console.WriteLine(test.Orders[2].OrderDate.ToString("yyyy-MM-dd HH:mm:ss"));
}
Console.ReadKey();
}
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Order> Orders { get; set; }
}
public class Order
{
public int Id { get; set; }
public int PersonId { get; set; }
public DateTime OrderDate { get; set; }
}
public class ObjectHelper
{
/// <summary>
/// 将对象序列化为xml字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string XmlSerialize<T>(T obj)
{
using (var writer = new StringWriter())
{
new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj);
return writer.ToString();
}
}
/// <summary>
/// 将xml字符串反序列化为对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="xml"></param>
/// <returns></returns>
public static T XmlDeserialize<T>(string xml)
{
T result = default(T);
if (!string.IsNullOrEmpty(serialObj))
{
using (StringReader reader = new StringReader(serialObj))
{
var serializer = new XmlSerializer(typeof(T));
result = (T)serializer.Deserialize(reader);
}
}
return result;
}
}
}
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace Demo026
{
class Program
{
static void Main(string[] args)
{
var person = new Person() { Id = 1, Name = "这个测试" };
var orders = new List<Order>()
{
new Order() {Id = 1, PersonId = 1},
new Order() {Id = 211, PersonId = 1},
new Order() {Id = 3, PersonId = 1, OrderDate = DateTime.Today.AddMinutes(89)}
};
person.Orders = orders;
string result = ObjectHelper.XmlSerialize(person);
Console.WriteLine(result);
var test = ObjectHelper.XmlDeserialize<Person>(result);
if (test != null)
{
Console.WriteLine(test.Name);
Console.WriteLine(test.Orders[2].OrderDate.ToString("yyyy-MM-dd HH:mm:ss"));
}
Console.ReadKey();
}
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public List<Order> Orders { get; set; }
}
public class Order
{
public int Id { get; set; }
public int PersonId { get; set; }
public DateTime OrderDate { get; set; }
}
public class ObjectHelper
{
/// <summary>
/// 将对象序列化为xml字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static string XmlSerialize<T>(T obj)
{
using (var writer = new StringWriter())
{
new XmlSerializer(obj.GetType()).Serialize((TextWriter)writer, obj);
return writer.ToString();
}
}
/// <summary>
/// 将xml字符串反序列化为对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="xml"></param>
/// <returns></returns>
public static T XmlDeserialize<T>(string xml)
{
T result = default(T);
if (!string.IsNullOrEmpty(serialObj))
{
using (StringReader reader = new StringReader(serialObj))
{
var serializer = new XmlSerializer(typeof(T));
result = (T)serializer.Deserialize(reader);
}
}
return result;
}
}
}
相关文章推荐
- xml序列化及反序列化.net对象
- .NET对象的XML序列化和反序列化
- Xml与对象之间的序列化、反序列化
- xml序列化及反序列化.net对象
- XmlSerializer 对象的Xml序列化和反序列化,XMLROOT别名设置
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- XmlSerializer 对象的Xml序列化和反序列化
- (转).NET对象的XML序列化和反序列化
- 【转】.NET对象的XML序列化和反序列化
- 怎么给这个xml文件建立对象,以便使对象和xml文件序列化和反序列化
- Xml与对象之间的序列化、反序列化
- xml和对象直接的序列化和反序列化
- (转) .NET对象的XML序列化和反序列化
- XmlSerializer 对象的Xml序列化和反序列化
- Java对象的XML序列化和反序列化 - (2)
- 用 XStream 序列化/反序列化 XML 为 Java 对象(实例)
- Xml与对象之间的序列化、反序列化(转)
- .NET对象的XML序列化和反序列化
- 对象的序列化与反序列化,以xml,二进制流的方式,soap方式序列化对象
- .NET对象的XML序列化和反序列化