在C#中,序列化是将对象的状态转换为可以存储或传输的格式的过程。在XML序列化中,可以使用XmlElement
属性来控制类属性如何映射到XML元素。通过将类属性分组到XmlElement
属性中,可以更好地组织和管理XML数据。
假设有一个类Person
,其中包含多个属性,我们希望将这些属性分组到不同的XML元素中。
using System;
using System.Xml.Serialization;
[XmlRoot("Person")]
public class Person
{
[XmlElement("PersonalInfo")]
public PersonalInfo Personal { get; set; }
[XmlElement("ContactInfo")]
public ContactInfo Contact { get; set; }
}
public class PersonalInfo
{
[XmlElement("Name")]
public string Name { get; set; }
[XmlElement("Age")]
public int Age { get; set; }
}
public class ContactInfo
{
[XmlElement("Email")]
public string Email { get; set; }
[XmlElement("Phone")]
public string Phone { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person
{
Personal = new PersonalInfo { Name = "John Doe", Age = 30 },
Contact = new ContactInfo { Email = "john.doe@example.com", Phone = "123-456-7890" }
};
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (System.IO.StringWriter writer = new System.IO.StringWriter())
{
serializer.Serialize(writer, person);
Console.WriteLine(writer.ToString());
}
}
}
<Person>
<PersonalInfo>
<Name>John Doe</Name>
<Age>30</Age>
</PersonalInfo>
<ContactInfo>
<Email>john.doe@example.com</Email>
<Phone>123-456-7890</Phone>
</ContactInfo>
</Person>
通过这种方式,可以更好地控制XML的结构,使其更符合特定的需求。
领取专属 10元无门槛券
手把手带您无忧上云