C#中的Attribute如何用于序列化和反序列化

avatar
作者
猴君
阅读量:0

在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格式中进行序列化和反序列化操作,可以使用DataContractDataMemberAttribute来控制属性的序列化行为。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!