你能在c#中迭代XmlAttributeOverrides集合吗?

时间:2010-03-10 11:21:22

标签: c# xml-serialization

我必须使用System.Xml.Serialization.XmlAttributeOverrides

在运行时动态分配和更改复杂对象属性

到目前为止,我已经能够做我需要的一切。

我的一个问题是如何遍历集合以查看已添加的内容?

如果我无法通过这个集合进行交互,我可以加入两个XmlAttributeOverrides集合来形成一个完整的集合。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以创建一个类似于XmlAttributeOverridesBuilder的{​​{1}}类,它可以让您更好地控制它包含的XmlAttributes。这样,您可以处理XmlAttributeOverrides个实例,必要时将它们合并,并在需要实际的XmlAttributeOverridesBuilder实例时调用GetOverrides方法。

XmlAttributeOverrides

答案 1 :(得分:0)

不方便,没有。

您可以使用索引器(yourOverrides[type]yourOverrides[type, memberName] - 获取期望类型的值 - 但要获取所有列表内部数据需要反射(它不会在API上公开)。

通过检查(尽管这很脆弱),有一个名为types的字段是Hashtable(由Type键入)。 Hashtable中的每个对象都是本身一个Hashtable(由成员名称键入,""为该类型自己的设置。)

祝你好运,如果你应用了一些修补程序或新的.NET版本,它不会归咎于我...