XML序列号和反序列化:将类转换为xml文件/将文件转换为xml类

/*--===------------------------------------------===---
XML序列号和反序列化:将类转换为xml文件/将文件转换为xml类
            许明会    2007年12月13日 21:59:19
--===------------------------------------------===---
*/
using System;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using System.Data;

namespace xumh
{
    
public class Dog
    {
        
public void Attach()
        {
            Console.WriteLine(
"Dog Attach .");
        }
    };

    
public class runMyApp
    {
        
static void Main()
        {
            XmlSerializer ser 
= new XmlSerializer(typeof(DataSet));
            
//创建DataSet,DataTable,DataRow
            DataSet ds = new DataSet("myDataSet");
            DataTable dt 
= new DataTable("Table1");
            dt.Columns.Add(
"things",typeof(string));
            ds.Tables.Add(dt);
            
for(int i=0; i<10; i++)
            {
                DataRow dr 
= dt.NewRow();
                dr[
0= "Things " + i;
                dt.Rows.Add(dr);
            }
            
//序列化
            StreamWriter writer = new StreamWriter(@".\dsSerialize.xml");
            ser.Serialize(writer,ds);
            writer.Close();
            
//反序列化,将文件转换为类,然后便利数据
            StreamReader reader = new StreamReader(@".\dsSerialize.xml");
            DataSet dataSet 
= (DataSet) ser.Deserialize(reader.BaseStream);
            
foreach(DataRow dr in dataSet.Tables[0].Rows)
                
for(int i=0; i< dataSet.Tables[0].Columns.Count; i++)
                    Console.WriteLine(
"{0}", dr[0]);
            
//--===------------------------------------------===---
             //1、要序列化的类型是什么,存到哪里? 是Dog类型
            XmlSerializer se = new XmlSerializer(typeof(Dog));
            StreamWriter sw = new StreamWriter(@".\DogClass.xml");
            //2、序列化,将Dog类的对象dog转换为Xml文件
            Dog dog = new Dog();
            se.Serialize(sw,dog);
            sw.Close();
            
//---------反序列化,将xml文件转换为Dog类的实例------------
            StreamReader sr = new StreamReader(@".\DogClass.xml");
            Dog d 
= (Dog) se.Deserialize(sr.BaseStream);
            d.Attach();
        }
    };
}
原文地址:https://www.cnblogs.com/flaaash/p/994233.html