C# XmlSerializer 序列化,写入文件

XmlSerializer

  将对象序列化到 XML 文档中和从 XML 文档中反序列化对象,XML 序列化是将对象的公共属性 (Property) 和字段转换为序列格式(这里是指 XML)以便存储或传输的过namespace ConsoleApplication1

{public class Test
    {
        public string Id { get; set; }
        public string Name { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Test t = new Test() { Id="0",Name="00"};
            t.Id = "1";
            t.Name = "hello";


            string s = SerializeObj<Test>(t);       //把Test类序列化为xml文件
            
Test tt = DeseriaLizeObj<Test>(s) as Test; //从xml文件,反序列化为Test类,把Id,Name的值赋值为xml中结点Id,Name,的值

//序列化后,写s入到.txt文本
//FileStream fs = new FileStream("E:\a.txt", FileMode.Create, FileAccess.Write); //StreamWriter sw = new StreamWriter(fs); //sw.WriteLine(s); //sw.Close(); //fs.Close();
//从.txt文本读取值,反序列化为Test类 //StreamReader sr
= new StreamReader("E:\a.txt",Encoding.Default); //string ss; //string sss = ""; //while ((ss = sr.ReadLine()) != null) //{ // sss += ss; // } //sr.Close(); //Test tt = DeseriaLizeObj<Test>(sss) as Test;

Console.ReadLine(); } static T DeseriaLizeObj<T>(string xml) { XmlSerializer xs = new XmlSerializer(typeof(T)); StringReader sr = new StringReader(xml); object obj = xs.Deserialize(sr); sr.Close(); return (T)obj; } static string SerializeObj<T>(T t) { XmlSerializer xs = new XmlSerializer(typeof(T)); StringWriter sw = new StringWriter(); xs.Serialize(sw, t); return sw.ToString(); } } }
原文地址:https://www.cnblogs.com/wangfei1511/p/3691060.html