Jak sprawdzić nazwę elementu za pomocą WriteEndElement

Piszę xml zXmlWriter. Mój kod zawiera wiele takich sekcji:

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

Problem polega na tym, żeThirdPartyLibrary.Serialise metoda jest zawodna. Może się zdarzyć (w zależności od zmiennejresults), że nie zamyka wszystkich otwartych tagów. W konsekwencji moja linia WriteEndElement jest wypaczona, zużyta, zamykając wiszące znaczniki biblioteki, zamiast pisać</payload>.

Dlatego chciałbym wykonać sprawdzone wywołanie WriteEndElement, które sprawdza nazwę elementu i zgłasza wyjątek, chyba że kursor znajduje się w oczekiwanym elemencie.

xml.WriteEndElement("payload");

Możesz myśleć o tym jakXmlReader.ReadStartElement(name) który rzuca, chyba że kursor znajduje się w oczekiwanym miejscu w dokumencie.

Jak mogę to osiągnąć?

Edytuj: Drugim przypadkiem użycia tej metody rozszerzenia byłoby uczynienie mojego własnego kodu bardziej czytelnym i niezawodnym.

questionAnswers(2)

yourAnswerToTheQuestion