Gha*_*han 3 c# xml serialization
我有一个类,我想序列化为xml.该课程如下所示
[XmlRoot("clubMember")]
public class Person
{
[XmlElement("memberName")]
public string Name {get; set;}
[XmlArray("memberPoints")]
[XmlArrayItem("point")]
public List<Int32> ClubPoints {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
当我序列化上面的类时,它会生成以下xml
<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point >xx </point>
<point >xx </point>
</memberPoints>
</clubMember>
Run Code Online (Sandbox Code Playgroud)
我想生成如下的xml:
<clubMember>
<memberName> xxxx</memberName>
<memberPoints>
<point value="xx"/>
<point value="xx"/>
</memberPoints>
</clubMember>
Run Code Online (Sandbox Code Playgroud)
有没有办法生成上面提到的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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |