存储和检索XML文件中的数据

时间:2013-03-18 22:39:43

标签: c# xml xml-serialization

我将一组用户提供的数据存储在一个文件中。当我接手项目时,所有内容都保存为纯文本文件。我重新设计了它,现在,存储是一个XML文件。当进程开始时,我使用 XDocument XElement 类读取XML文件。当我获得值时,我将它们放在执行对象的构造函数中。

我想知道是否有一种方法可以自动读取XML数据,以便对其进行转换,转换(或转换为)对象的实例。

所以,而不是:

XElement fromFile = XElement.Load(pathName);
XElement newStuff =
  new XElement("MainNode",
    new XElement("SubNode1", myObject.valueOfSubNode1),
    new XElement("SubNode2", myObject.valueOfSubNode2));
fromFile.ReplaceAll(newStuff);

XmlTextWriter writer = ...;
fromFile.Save(writer);

我想“存储” myObject 本身的实例。我认为这是可能的。我不知道如何开始甚至从哪里开始。

1 个答案:

答案 0 :(得分:1)

将类型序列化为XML:

public static string Serialize<T>(T data)
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

    StringWriter sw = new StringWriter();
    xmlSerializer.Serialize(sw, data);
    return sw.ToString();
}

将XML反序列化回您的对象:

public static object DeSerialize<T>(string data)
{
  StringReader rdr = new StringReader(data);

  XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

  var result = (T)xmlSerializer.Deserialize(rdr);

  return result;
}

另请看这里:C# XML Serialization/DeSerialization