我从字符串的泛型列表派生的简单类,如下所示在指定的项目元素名称:序列化泛型集合集合
[Serializable]
[System.Xml.Serialization.XmlRoot("TestItems")]
public class TemplateRoleCollection : List<string>
{
}
当我序列化,我得到了下面的XML:
<TestItems>
<string>cat</string>
<string>dog</string>
<string>wolf</string>
</TestItems>
有什么方法可以重写用于序列化集合中的项目的xml元素名称吗? 我想产生以下XML:
<TestItems>
<TestItem>cat</TestItem>
<TestItem>dog</TestItem>
<TestItem>wolf</TestItem>
</TestItems>
+1完美工作。谢谢。 – 2010-05-13 11:46:47
我刚碰到这个问题。有没有办法做到这一点,仍然从列表继承?这个答案很好,但是解决方法而不是我寻找的解决方案。在我的情况下,它是一个自定义(非原始)类型的列表,它已经标记为[XmlRoot]属性,所以当序列化程序不赞同这种类型的列表时,我感到很惊讶。 –
si618
2010-09-01 02:53:50
@Si:'XmlRootAttribute'不会做你认为它确实做的事。它仅在您自己序列化类时控制根元素的名称(AKA文档元素)。也许你正在寻找'XmlTypeAttribute'? – Aaronaught 2010-09-01 14:33:39