我有一个要序列化为 xml 的类。 该类如下所示
[XmlRoot("clubMember")]
public class Person
{
[XmlElement("memberName")]
public string Name {get; set;}
[XmlArray("memberPoints")]
[XmlArrayItem("point")]
public List<Int32> ClubPoints {get; set;}
}
当我序列化上面的类时,它会生成如下的xml
<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point >xx </point>
<point >xx </point>
</memberPoints>
</clubMember>
我想生成如下所示的 xml:
<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point value="xx"/>
<point value="xx"/>
</memberPoints>
</clubMember>
有没有办法在不修改类结构的情况下生成上面提到的xml? 我真的很喜欢保持 calss 结构完整,因为它在我的应用程序中无处不在。
最佳答案
我认为 List<int>
不可能做到这一点.你可以定义一个类 Point
相反:
[XmlRoot("clubMember")]
public class Person
{
[XmlElement("memberName")]
public string Name { get; set; }
[XmlArray("memberPoints")]
[XmlArrayItem("point")]
public List<Point> ClubPoints { get; set; }
}
public class Point
{
[XmlAttribute("value")]
public int Value { get; set; }
}
class Program
{
static void Main(string[] args)
{
var member = new Person
{
Name = "Name",
ClubPoints = new List<Point>(new[]
{
new Point { Value = 1 },
new Point { Value = 2 },
new Point { Value = 3 }
})
};
var serializer = new XmlSerializer(member.GetType());
serializer.Serialize(Console.Out, member);
}
}
关于c# - .NET 中的 Xml 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748581/