我在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();
}
答案 0 :(得分:5)
最简单的方法是将整个文档构建为内存开始,然后仅在最后编写它。这几乎肯定会导致更简单的代码,甚至抛弃“不写无效日期”的一面。唯一的缺点是如果你想先写一个你不想要的大文件。
我个人建议使用LINQ to XML - 并将的转换用于其他类型,因此您可以使用:
element.Add(new XElement("Date", dtm));
...将使用正确的 XML日期/时间格式而不是您目前使用的格式(使用hh
代替HH
;请参阅我的blog post on date/time text conversions了解有关类似常见错误的更多信息。)