如果在c#中发生异常,如何回滚XML文件

时间:2015-05-13 06:01:31

标签: c# xml

我在C#中创建XML文件并在其中写入数据。但是如果f异常,文件应该回滚。但是在异常的情况下,生成的文件格式和数据不完整。我只是想在异常生成文件时不应该生成。我使用下面的代码生成文件

using (XmlWriter writer = XmlWriter.Create(strFileName))
{
 writer.WriteStartElement("Head");//Start Head
 writer.WriteElementString("Date", dtm.ToString("yyyy-MM-dd hh:mm:ss.fff"));
 writer.WriteEndElement();//End Head
 writer.Flush();
}

1 个答案:

答案 0 :(得分:5)

最简单的方法是将整个文档构建为内存开始,然后仅在最后编写它。这几乎肯定会导致更简单的代码,甚至抛弃“不写无效日期”的一面。唯一的缺点是如果你想先写一个你不想要的大文件。

我个人建议使用LINQ to XML - 并将转换用于其他类型,因此您可以使用:

element.Add(new XElement("Date", dtm));

...将使用正确的 XML日期/时间格式而不是您目前使用的格式(使用hh代替HH;请参阅我的blog post on date/time text conversions了解有关类似常见错误的更多信息。)