Cómo verificar el nombre del elemento con WriteEndElement

Estoy escribiendo xml conXmlWriter. Mi código tiene muchas secciones como esta:

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

El problema es que laThirdPartyLibrary.Serialise El método no es confiable. Puede suceder (dependiendo de la variableresults) que no cierra todas las etiquetas que abre. Como consecuencia, mi línea WriteEndElement se pervierte, se consume al cerrar las etiquetas colgantes de la biblioteca, en lugar de escribir</payload>.

Por lo tanto, me gustaría hacer una llamada marcada a WriteEndElement que verifique el nombre del elemento y arroje una excepción a menos que el cursor esté en el elemento esperado.

xml.WriteEndElement("payload");

Puedes pensar en esto comoXmlReader.ReadStartElement(name) que arroja a menos que el cursor esté en el lugar esperado en el documento.

¿Cómo puedo conseguir esto?

Edición: Un segundo caso de uso para este método de extensión sería hacer que mi propio código sea más legible y confiable.

Respuestas a la pregunta(2)

Su respuesta a la pregunta