I have an API that returns XElement-s, and I want the document behind those XElement-s to be immutable (read-only). I need it for:
1) Not to give devs an ability to change it accidentally :) 2) Improving performance - creating a copy of an XDocument might be a performance "heavy" operation in some cases.
It doesn't seem to possible to inherit & override the necessary behavior in XDocument/XElement/XContainer, because all virtual methods there are marked as "internal":
internal virtual void XContainer.AddAttribute(XAttribute a) { }
So my question is - is there a way make it happen, or it is better to have a different API that will either return something like XPathNavigator-s, or it is better to have own classes like IReadOnlyXElement, etc.?