XMLNode上的SetUserData和GetUserData的等效项

时间:2013-12-02 18:55:18

标签: c# xml

在Java中,您可以使用GetUserData和SetUserData附加XML节点上的任意对象,以便在处理DOM时在运行时使用。 C#中有等价物吗?有没有办法在C#中执行此操作而不是扩展XMLNode?

2 个答案:

答案 0 :(得分:3)

XmlNode有点过时了。您应该使用LINQ to XML。

LINQ to XML中所有对象的基类是XObject。此类有AddAnnotation方法,允许您将任意数据附加到XObject

答案 1 :(得分:1)

框架中没有内置的东西。

你可以通过几种不同的方式实现同​​样的目标。

子类XmlNode

class CustomXmlNode : XmlNode {
    public Object Tag {get; set;}
}
/* Tag is a common name for user-defined data in .NET */

创建Dictionary

Dictionary<XmlNode, Object> xmlMap = new Dictionary<XmlNode, Object>();
/* for each node you load, create a new dictionary entry */