溫馨提示×

C#中怎么實現對象的序列化和反序列化

c#
小億
107
2024-03-07 09:24:00
欄目: 編程語言

在C#中,可以通過使用System.Runtime.Serialization命名空間中的DataContractSerializer類來實現對象的序列化和反序列化。

序列化對象示例代碼:

using System;
using System.IO;
using System.Runtime.Serialization;

[DataContract]
public class Person
{
    [DataMember]
    public string Name { get; set; }
    
    [DataMember]
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        Person person = new Person { Name = "Alice", Age = 30 };

        DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
        using (FileStream stream = new FileStream("person.xml", FileMode.Create))
        {
            serializer.WriteObject(stream, person);
        }
    }
}

反序列化對象示例代碼:

using System;
using System.IO;
using System.Runtime.Serialization;

class Program
{
    static void Main()
    {
        DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
        using (FileStream stream = new FileStream("person.xml", FileMode.Open))
        {
            Person person = (Person)serializer.ReadObject(stream);
            Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
        }
    }
}

以上代碼中,Person類使用DataContractDataMember屬性來標記需要序列化的屬性,然后通過DataContractSerializer類將對象序列化為XML文件或從XML文件反序列化為對象。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女