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.