C# 序列化高级用法

时间:2023-03-09 19:19:34
C# 序列化高级用法
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization; namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!"); var model = new Person() { ID = , Name = "Eric", Age = , Address = "15F" }; string xml = ObjectXmlSerializer.Serialize<Person>(model);
xml = System.Text.RegularExpressions.Regex.Replace(xml, "^<\\?.+\\?>", string.Empty);
Console.WriteLine(xml);
Console.ReadLine();
}
} [Serializable]
[XmlRoot(Namespace = "http://newegg.com/xml")]
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
} public class ObjectXmlSerializer
{
public static string Serialize<T>(T t)
{
StringBuilder sb = new StringBuilder();
XmlSerializer xmlSer = new XmlSerializer(typeof(T));
using (TextWriter writer = new StringWriter(sb))
{
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("", "http://newegg.com/xml");
xmlSer.Serialize(writer, t, namespaces);
return writer.ToString();
} } public static T Deserialize<T>(string str)
{
XmlSerializer xmlSer = new XmlSerializer(typeof(T));
using (TextReader reader = new StringReader(str))
{
T t = (T)xmlSer.Deserialize(reader);
return t;
}
}
}
}