<?xml version="1.0" encoding="utf-8" ?>
<Tables>  
  <Table>
    <Name>test</Name><!--要监控的数据表的表名-->
  </Table>
  <Table>
    <Name>test</Name>
    <!--要监控的数据表的表名-->
  </Table>
</Tables>
[Serializable]
    public class Table
    {
        [XmlElement(ElementName = "Name")]
        public string Name
        {
            get;
            set;
        }
    }
如何将这样的XML反序列化到一个Table数组中,不定义其它的类

解决方案 »

  1.   

    直接序列化为object。然后强类型转换不可以嘛???
      

  2.   


    private void button2_Click(object sender, System.EventArgs e)  {  OpenFileDialog o = new OpenFileDialog();  o.Filter = " XML文档|*.XML|所有文件|*.*";  if( o.ShowDialog() == DialogResult.OK )  {  try {  XmlSerializer xs = new XmlSerializer( typeof( TestXML ) );  Stream s = o.OpenFile();  TestXML a = xs.Deserialize( s ) as TestXML;  tbName.Text = a.name;  tbSex.Text = a.sex;  tbAge.Text = a.age;  s.Close();  }  catch( Exception ex )  {  MessageBox.Show( ex.Message );   }  }  } 
    把反序列化出来的值 遍历给datatable 就行了
      

  3.   


    private void button2_Click(object sender, System.EventArgs e) 
     {  OpenFileDialog o = new OpenFileDialog(); 
        o.Filter = " XML文档|*.XML|所有文件|*.*"; 
        if( o.ShowDialog() == DialogResult.OK ) 
          {  
            try 
              {  
                XmlSerializer xs = new XmlSerializer( typeof( TestXML ) );     
                Stream s = o.OpenFile();  
                TestXML a = xs.Deserialize( s ) as TestXML; 
                tbName.Text = a.name;  tbSex.Text = a.sex; 
                tbAge.Text = a.age;  s.Close(); 
               } 
              catch( Exception ex ) 
               {  
                 MessageBox.Show( ex.Message );  
               } 
          }  

      

  4.   

    static void Main(string[] args)
            {
                TextReader reader = new StreamReader(AppDomain.CurrentDomain.BaseDirectory + "config.xml");
                XmlSerializer ser = new XmlSerializer(typeof(Table));
                Table tab = (Table)ser.Deserialize(reader);
                reader.Dispose();            Console.ReadKey();
            }
    [Serializable]
        public class Table
        {
            [XmlElement(ElementName = "Name")]
            public string Name
            {
                get;
                set;
            }
        }
    这样是不行的,你说的是什么意思?不明白