我有一个简单的课程:
public class SomeClass
{
public int SomeInt { get; set; }
public string SomeString { get; set; }
[XmlArrayItem("AString")]
public List<string> SomeStrings { get; set; }
}
我需要将此类的实例序列化为非良好形成的xml(我无法更改)。如果我按原样序列化类,我会得到以下结果:
<?xml version="1.0" encoding="utf-8"?>
<SomeClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SomeInt>1234</SomeInt>
<SomeString>Hello</SomeString>
<SomeStrings>
<AString>One</AString>
<AString>Two</AString>
<AString>Three</AString>
</SomeStrings>
</SomeClass>
我想得的是以下内容(AString元素不包含在父元素中):
<?xml version="1.0" encoding="utf-8"?>
<SomeClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SomeInt>1234</SomeInt>
<SomeString>Hello</SomeString>
<AString>One</AString>
<AString>Two</AString>
<AString>Three</AString>
</SomeClass>
我在List属性上尝试过各种Xml *属性组合,但它总是想编写父元素(SomeStrings)。
有没有办法可以修改类来实现我想要的结果,而不是实现IXmlSerializable接口?
答案 0 :(得分:0)
请改为使用[XmlElement]
属性:
public class SomeClass
{
public int SomeInt { get; set; }
public string SomeString { get; set; }
[XmlElement]
public List<string> SomeStrings { get; set; }
}