我有一个返回XElement
的API,我希望这些XElement
背后的文档是不可变的(只读)。我需要它:有没有办法创建一个不可变(只读)的XDocument?
- 不给开发者去改变它小心:)
- 提高性能的能力 - 创建
XDocument
的副本可能是在某些情况下的性能“沉重”的操作。
这似乎并不可能继承&覆盖在XDocument
/XElement
/XContainer
必要的行为,因为所有的虚拟方法有标记为internal
:
internal virtual void XContainer.AddAttribute(XAttribute a)
{
}
所以我的问题是 - 有办法让它发生,或者最好有一个不同的API来返回像XPathNavigator
的东西,或者最好有自己的类如IReadOnlyXElement
等。