So überprüfen Sie den Namen eines Elements mit WriteEndElement

Ich schreibe XML mitXmlWriter. Mein Code enthält viele Abschnitte wie diesen:

xml.WriteStartElement("payload");
ThirdPartyLibrary.Serialise(results, xml);
xml.WriteEndElement(); // </payload>

Das Problem ist, dass dieThirdPartyLibrary.Serialise Methode ist unzuverlässig. Dies kann passieren (abhängig von der Variablen)results), dass es nicht alle Tags schließt, die es öffnet. Infolgedessen ist meine WriteEndElement-Zeile pervers und es wird nicht mehr geschrieben, sondern es werden die hängenden Tags der Bibliothek geschlossen</payload>.

Daher möchte ich WriteEndElement mit einem Häkchen aufrufen, das den Elementnamen überprüft und eine Ausnahme auslöst, sofern sich der Cursor nicht auf dem erwarteten Element befindet.

xml.WriteEndElement("payload");

Sie können sich das so vorstellenXmlReader.ReadStartElement(name) Wird ausgelöst, wenn sich der Cursor nicht an der erwarteten Stelle im Dokument befindet.

Wie kann ich das erreichen?

Bearbeiten: Ein zweiter Anwendungsfall für diese Erweiterungsmethode wäre, meinen eigenen Code lesbarer und zuverlässiger zu machen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage