Tengo una API que devuelve XElement
, y quiero que el documento detrás de esos XElement
sea inmutable (solo lectura). Lo necesito para:¿Hay alguna manera de crear un XDocument inmutable (de solo lectura)?
- No dar desarrolladores la capacidad de cambiar accidentalmente :)
- Mejorar el rendimiento - la creación de una copia de un
XDocument
podría ser una operación rendimiento "pesado" en algunos casos.
No parece posible heredar & reemplazar el comportamiento necesario en XDocument
/XElement
/XContainer
, porque todos los métodos virtuales no están marcados como internal
:
internal virtual void XContainer.AddAttribute(XAttribute a)
{
}
Así que mi pregunta es - es Hay alguna manera de hacerlo posible, o es mejor tener una API diferente que devuelva algo como XPathNavigator
, o es mejor tener clases propias como IReadOnlyXElement
, etc.?