我有如下集合的类
public class MyClass:IXmlSerializable
{
int vesrion;
private Collection<int> testcoll;
}为了序列化它,我编写了WriteXML,如下所示
public void WriteXml(XmlWriter writer)
{
writer.WriteAttributeString("Version", this.vesrion.ToString());
XmlSerializer serializer = new XmlSerializer(typeof(Collection<int>));
serializer.Serialize(writer, Testcoll);
}现在输出的xml具有与Testcoll相同的标记"ArrayOfInt“。但是我想把这个名字改成不同的名字"MyCollection“。
请告诉我如何做到这一点。
发布于 2012-06-21 22:33:08
在字段上使用属性,如下所示:
[XmlElement(ElementName = "MyCollection")]
private Collection<int> testcoll;编辑:@comments,错过了这些细节,请参阅下面的有效答案(编译和测试)
XmlSerializer serializer = new XmlSerializer(typeof(Collection<int>), new XmlRootAttribute("MyCollection"));
serializer.Serialize(writer, Testcoll);发布于 2014-04-14 22:15:39
另一种不创建新XmlSerializer的方法:
public void WriteXml(XmlWriter writer)
{
writer.WriteAttributeString("Version", vesrion.ToString(CultureInfo.InvariantCulture));
writer.WriteStartElement("MyCollection");
foreach (int collint in Testcoll)
{
writer.WriteElementString("int", collint.ToString(CultureInfo.InvariantCulture));
}
writer.WriteEndElement();
}https://stackoverflow.com/questions/11140404
复制相似问题