c#

c#构造类如何进行序列化操作

小樊
83
2024-10-18 19:18:33
栏目: 编程语言

在C#中,要对类进行序列化操作,首先需要确保类实现了Serializable接口。Serializable接口是一个标记接口,没有任何方法需要实现。它告诉序列化系统该类的对象可以被序列化。

下面是一个简单的示例,演示了如何对一个包含属性和实现了Serializable接口的类进行序列化:

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

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

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

        // 序列化对象
        IFormatter formatter = new BinaryFormatter();
        using (FileStream fileStream = new FileStream("person.bin", FileMode.Create))
        {
            formatter.Serialize(fileStream, person);
        }

        // 反序列化对象
        using (FileStream fileStream = new FileStream("person.bin", FileMode.Open))
        {
            Person deserializedPerson = (Person)formatter.Deserialize(fileStream);
            Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
        }
    }
}

在这个示例中,我们创建了一个名为Person的类,并为其添加了NameAge属性。然后,我们使用BinaryFormatter类将Person对象序列化到名为person.bin的文件中。接下来,我们从该文件中反序列化Person对象,并将其输出到控制台。

需要注意的是,BinaryFormatter类已经过时,可能在未来的.NET版本中被移除。在实际项目中,建议使用其他序列化库,如Json.NET(现已被命名为Newtonsoft.Json)或System.Text.Json。这些库提供了更多的功能和更好的性能。

0
看了该问题的人还看了