我正在用XmlWriter编写 xml 。我的代码有很多这样的部分:
xml.WriteStartElement("payload");
ThirdPartyLibrary.Serialise(results, xml);
xml.WriteEndElement(); // </payload>
问题是该ThirdPartyLibrary.Serialise
方法不可靠。它可能会发生(取决于变量results
)它不会关闭它打开的所有标签。结果,我的 WriteEndElement 行被歪曲了,消耗了关闭库的悬挂标签,而不是写</payload>
.
因此,我想对 WriteEndElement 进行检查调用,检查元素名称,并抛出异常,除非光标位于预期元素处。
xml.WriteEndElement("payload");
XmlReader.ReadStartElement(name)
除非光标位于文档中的预期位置,否则您可以将其视为抛出异常。
我怎样才能做到这一点?
编辑:此扩展方法的第二个用例是使我自己的代码更具可读性和可靠性。