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.