在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來控制屬性的序列化行為。