如何在c#中重命名XML根ArrayOfElement ?
本文关键字:XML ArrayOfElement 重命名 | 更新日期: 2023-09-27 18:18:02
我有一个可序列化的类:
[XmlRoot(ElementName = "News"), XmlType("News")] // I tried many attributes...
public class News
{
[XmlElement("Article")]
public List<Article> Articles { get; set; }
}
和序列化方法:
public static void SerializeToXML(Object obj)
{
XmlSerializer ser = new XmlSerializer(obj.GetType());
...
}
我想有第一个XML元素<News>
,但它是<ArrayOfArticle>
。
注意,我发现了许多类似的答案,但似乎我有另一个问题…
如果我使用...XmlSerializer(typeof(News));
而不是...obj.GetType()
,一切都是好的。但是obj.GetType()
有问题。它导致(ser.mapping).ElementName
是"ArrayOfArticle"
。有什么区别呢?
在过去,我能够找到做到这一点的唯一方法是创建一个简单的包装器对象,该对象用XmlRoot属性进行装饰,并使用它来代替您的List。
[XmlRoot("Articles")]
public class Articles : List<Article> { }
可能有一个更标准的方法来实现它,但我知道这每次都有效。