将序列化结构添加到XML文件

时间:2016-07-22 18:31:58

标签: c# xml linq-to-xml

我正在尝试将序列化结构添加到现有XML文件中。在下面的代码中,

  • 我测试文件是否存在。
  • 如果不是我创造它。
  • 如果存在,我想使用.Add语法将序列化结构(从内存流)添加到文件中。
  • 执行xmlDoc.Add(xmlSerialized);时,会出现以下错误
  

“无法将非空格字符添加到内容中。”

我做错了什么?

try
{
    xmlDoc = XDocument.Load(path);
    XmlSerializer xmlSerialized = new XmlSerializer(typeof(DataClass.Task));
    MemoryStream memStream = new MemoryStream();
    xmlSerialized.Serialize(memStream, taskStruct);
    xmlDoc.Add(xmlSerialized);

    bSuccess = true;
}

1 个答案:

答案 0 :(得分:1)

已编辑修复问题,因为MemoryStream似乎不是每个Valid Content of XElement and XDocument Objects传递的有效类型

我认为您遇到的问题是您尝试将XmlSerializer的实例添加到XDocument,而不是MemoryStream {{中包含的序列化对象1}}。

由于memStream似乎是无法传入的类型,请尝试使用MemoryStream CreateWriter()方法,如下所示:

XElement

以上代码基于此答案:How do I serialize an object into an XDocument?