RT, Value的节点数量不确定。  <Measurement Name="SpdupPlinqVs1">
    <value>100</value>
<value>110</value>
<value>120</value>
  </Measurement>

解决方案 »

  1.   

    我想这样写,但是不对!
    [XmlRootAttribute("Measurement")]
    public class MeasurementResult
        {
            public MeasurementResult()
            { }        [XmlAttribute("Name")]
            public string MeasurementName { get; set; }        public List<string> ValueList { get; set; }
        }
      

  2.   

    序列化
    Stream s = of.OpenFile();
    new XmlSerializer( a.GetType() ).Serialize( s, a );
    反序列化
    XmlSerializer xs = new XmlSerializer( typeof( TestXML ) );
    Stream s = o.OpenFile();
    TestXML a = xs.Deserialize( s ) as TestXML;
      

  3.   


    [XmlRootAttribute("Measurement")]
    public class MeasurementResult
    {
        [NonSerialized]
        private string measurementName = "";
        [NonSerialized]
        private List<string> valueList = new List<string>();    public MeasurementResult()
        { 
        }    [XmlAttribute("Name")]
        public string MeasurementName
        {
            get
            {
                return measurementName;
            }
            set
            {
                measurementName = value;
            }
        }    [XmlArrayItem("value")]
        public List<string> ValueList
        {
            get
            {
                return valueList;
            }
            set
            {
                valueList.Clear();
                if (value != null)
                {
                    valueList.AddRange(value);
                }
            }
        }
    }private void Serialize()
    {
        string filePath = "e:\\111111.xml";
        MeasurementResult result = new MeasurementResult();
        result.MeasurementName = "test";
        result.ValueList.AddRange(new string[] { "1", "2", "3" });
        XmlSerializer mySerializer = new XmlSerializer(typeof(MeasurementResult));
        StreamWriter myWriter = new StreamWriter(filePath);
        XmlSerializerNamespaces xmlns = new XmlSerializerNamespaces();
        xmlns.Add(String.Empty, String.Empty);
        mySerializer.Serialize(myWriter, result, xmlns);
        myWriter.Close();
    }private MeasurementResult Deserialize()
    {
        string filePath = "e:\\111111.xml";
        XmlSerializer mySerializer = new XmlSerializer(typeof(MeasurementResult));
        FileStream myFileStream = new FileStream(filePath, FileMode.Open);
        MeasurementResult result = mySerializer.Deserialize(myFileStream) as MeasurementResult;
        myFileStream.Close();
        return result;
    }
      

  4.   

    不好意思
    上面代码有点问题public List<string> ValueList
    这个地方应该是[XmlElement("value")]
    而不是[XmlArrayItem("value")]