<Data>
  <fields name = "t1">v1</fields>
  <fields name = "t2">v2</fields>
  <fields name = "t3">v3</fields>
  <fields name = "t4">v4</fields>
</Data>
请问如何设置类fileds 来取name和value的值?即:t1, v1 ...
Class fileds
{  
   [XmlAttribute("name")]
   public string name {get;set;}  
    
   // 问题处:
    public string value{get;set;}  
}name可以取到,但是value就取不到,value 上面的属性到底该怎么写?XmlAttribute or XmlElement ?

解决方案 »

  1.   

    Up一下,我没有说明白么?所有的测试代码:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Serialization;
    using System.IO;namespace ConsoleApplication4
    {
        [XmlRoot("Data")]
        public class Data
        {
            [XmlElement("field")]
            public List<Field> fields { get; set; }
        }    public class Field
        {
            [XmlAttribute("name")]
            public string name { get; set; }        [XmlAttribute("field")]
            public string value { get; set; }
        }    class Program
        {
            static void Main(string[] args)
            {
                Data data = null;
                XmlSerializer serializer = new XmlSerializer(typeof(Data));
                using (TextReader textReader = new StreamReader("1.xml"))
                {
                    data = (Data)serializer.Deserialize(textReader);
                }
            }
        }
    }1.XML<?xml version="1.0" encoding="utf-8" ?> 
    <Data>
      <field name = "t1">v1</field>
      <field name = "t2">v2</field>
      <field name = "t3">v3</field>
      <field name = "t4">v4</field>
    </Data>
      

  2.   

    自己解决,原来是 [XmlText] 属性