我想生成以下 XML:
<Base>
<Child>
<Name>Joe</Name>
</Child>
<Child>
<Name>Jack</Name>
</Child>
</Base>
来自类(class):
public class Base
{
public List<Child> children;
...elided...
}
public class Child
{
public string Name;
...elided...
}
现在,它正在创建:
<Base>
<children>
<Child>
<Name>Joe</Name>
</Child>
<Child>
<Name>Jack</Name>
</Child>
</children>
</Base>
我将如何更改以产生所需的输出?
我当前的代码:
XmlSerializer serializer = new XmlSerializer(base.GetType());
serializer.serialze(stringWriter, base);
return stringWriter.ToString();
最佳答案
public class Base
{
[XmlElement(ElementName = "Child")]
public List<Child> children;
}
...完整示例...
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml.Serialization;
class Program
{
static void Main()
{
var xsr = new XmlSerializer(typeof(Base));
var b = new Base
{
children = new List<Child>
{
new Child { Name= "Joe"},
new Child { Name ="Jack"},
}
};
using (var ms = new MemoryStream())
{
xsr.Serialize(ms, b);
var str = Encoding.UTF8.GetString(ms.ToArray());
/*
<?xml version="1.0"?>
<Base xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Child>
<Name>Joe</Name>
</Child>
<Child>
<Name>Jack</Name>
</Child>
</Base>
*/
}
}
}
public class Base
{
[XmlElement("Child")]
public List<Child> children;
}
public class Child
{
public string Name;
}
关于c# - 我将如何在 C# 中为我的类实现以下 XmlSerializer 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770503/