我想这样写,但是不对! [XmlRootAttribute("Measurement")] public class MeasurementResult { public MeasurementResult() { } [XmlAttribute("Name")] public string MeasurementName { get; set; } public List<string> ValueList { get; set; } }
序列化 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;
[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; }
[XmlRootAttribute("Measurement")]
public class MeasurementResult
{
public MeasurementResult()
{ } [XmlAttribute("Name")]
public string MeasurementName { get; set; } public List<string> ValueList { get; set; }
}
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;
[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;
}
上面代码有点问题public List<string> ValueList
这个地方应该是[XmlElement("value")]
而不是[XmlArrayItem("value")]