溫馨提示×

c#序列化和反序列化怎么實現(xiàn)

c#
小億
83
2024-08-01 17:11:13
欄目: 編程語言

在C#中,可以使用System.Runtime.Serialization命名空間中的類來實現(xiàn)對象的序列化和反序列化。具體步驟如下:

  1. 定義一個需要序列化的類,并為其添加[Serializable]屬性,表示該類可以被序列化。
[Serializable]
public class MyClass
{
    public int Id { get; set; }
    public string Name { get; set; }
}
  1. 創(chuàng)建一個BinaryFormatter對象,用于序列化和反序列化對象。
using System.Runtime.Serialization.Formatters.Binary;

BinaryFormatter formatter = new BinaryFormatter();
  1. 序列化對象:
MyClass obj = new MyClass { Id = 1, Name = "John" };

using (FileStream fileStream = new FileStream("data.dat", FileMode.Create))
{
    formatter.Serialize(fileStream, obj);
}
  1. 反序列化對象:
MyClass newObj;

using (FileStream fileStream = new FileStream("data.dat", FileMode.Open))
{
    newObj = (MyClass)formatter.Deserialize(fileStream);
}

Console.WriteLine($"Id: {newObj.Id}, Name: {newObj.Name}");

上述代碼演示了如何將MyClass對象序列化到文件中,然后再從文件中反序列化得到新的對象。你也可以使用其他格式如XML或JSON來序列化對象,只需要相應(yīng)地更換Formatter類型即可。

0