Mam API, który zwraca XElement
i chcę, aby dokument za tymi XElement
jest niezmienny (tylko do odczytu). Muszę go:Czy istnieje sposób utworzenia niezmiennego (tylko do odczytu) dokumentu XD?
- nie dać DEVS zdolność do zmiany przypadkowo :)
- Zwiększanie wydajności - tworząc kopię
XDocument
może być wydajność „ciężkich” operacja w niektórych przypadkach.
To nie wydaje się możliwe, aby odziedziczyć & nadpisanie niezbędne zachowanie w XDocument
/XElement
/XContainer
, ponieważ wszystkie metody wirtualne nie są oznaczone jako internal
:
internal virtual void XContainer.AddAttribute(XAttribute a)
{
}
Więc moje pytanie jest - jest istnieje sposób, aby to się stało, lub lepiej jest mieć inny interfejs API, który albo zwróci coś w rodzaju XPathNavigator
, albo lepiej mieć własne klasy, takie jak IReadOnlyXElement
itd.?