在C#中,可以使用Attribute来控制对象的序列化和反序列化过程。下面是一个简单的示例:
using System;
using System.IO;
using System.Xml.Serialization;
[Serializable]
public class Person
{
[XmlAttribute]
public string Name { get; set; }
[XmlElement]
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice", Age = 30 };
// Serialize
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (FileStream fs = new FileStream("person.xml", FileMode.Create))
{
serializer.Serialize(fs, person);
}
// Deserialize
using (FileStream fs = new FileStream("person.xml", FileMode.Open))
{
Person deserializedPerson = (Person)serializer.Deserialize(fs);
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
在上面的示例中,通过在属性上添加[XmlAttribute]
和[XmlElement]
Attribute,可以指定在序列化时将属性保存为XML的属性或元素。然后使用XmlSerializer
类进行序列化和反序列化操作。
注意:如果需要在JSON格式中进行序列化和反序列化操作,可以使用DataContract
和DataMember
Attribute来控制属性的序列化行为。