我想在使用C#进行XML序列化时更改根名称。如何使用XML序列化更改XML根名称?
它总是需要类名,而不是我试图设置的名称。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyTest test = new MyTest();
test.Test = "gog";
List testList = new List()
{
test
};
SerializeToXML(testList);
}
static public void SerializeToXML(List list)
{
XmlSerializer serializer = new XmlSerializer(typeof(List));
TextWriter textWriter = new StreamWriter(@"C:\New folder\test.xml");
serializer.Serialize(textWriter, list);
textWriter.Close();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
[XmlRootAttribute(ElementName = "WildAnimal", IsNullable = false)]
public class MyTest
{
[XmlElement("Test")]
public string Test { get; set; }
}
}
结果
gog
它不会将其更改为WildAnimal。我不知道为什么。我从教程中获得了这个。
编辑 @马克
感谢。我现在看到你的行为看起来很奇怪,你必须围绕它做一个包装。我还有一个问题会发生什么,如果我想使这种格式
所以像一个嵌套的元素。我是否必须为第二部分创建一个新课堂并将其固定在包装类中?
2010-01-23
chobo2
+0
重新编辑;它取决于你是否为每个产品''另一个元素',或者单个'另一个元素'丢失了'product'元素。对于后者:'[XmlArray]'''[XmlArrayItem]' - 否则是:第二种类型。 –
2010-01-24 07:58:18