专业的编程技术博客社区

网站首页 > 博客文章 正文

C# XML序列化、JSON序列化和Binary序列化的简单例子

baijin 2024-10-17 07:50:35 博客文章 5 ℃ 0 评论

在C#中,有几种常见的序列化方式,包括XML序列化、JSON序列化和Binary序列化。

下面是每种序列化方式的简单示例:

  • XML序列化:
using System;
using System.IO;
using System.Xml.Serialization;

// 定义要序列化的类
[Serializable]
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个Person对象
        Person person = new Person { Name = "John", Age = 30 };

        // 创建一个XmlSerializer实例
        XmlSerializer serializer = new XmlSerializer(typeof(Person));

        // 将对象序列化为XML字符串
        StringWriter stringWriter = new StringWriter();
        serializer.Serialize(stringWriter, person);
        string xmlString = stringWriter.ToString();

        Console.WriteLine(xmlString);
    }
}

上面的示例中,我们定义了一个Person类,并使用XmlSerializerPerson对象序列化为XML字符串。最后,我们将XML字符串打印到控制台。


  • JSON序列化:
using System;
using System.IO;
using System.Text.Json;

// 定义要序列化的类
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        // 创建一个Person对象
        Person person = new Person { Name = "John", Age = 30 };

        // 将对象序列化为JSON字符串
        string jsonString = JsonSerializer.Serialize(person);

        Console.WriteLine(jsonString);
    }
}

在上面的示例中,我们使用System.Text.Json命名空间中的JsonSerializer类将Person对象序列化为JSON字符串,并将其打印到控制台。


  • Binary序列化:
using System;
using System.IO;
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 person = new Person { Name = "John", Age = 30 };

        // 创建一个BinaryFormatter实例
        BinaryFormatter formatter = new BinaryFormatter();

        // 将对象序列化为字节数组
        using (MemoryStream memoryStream = new MemoryStream())
        {
            formatter.Serialize(memoryStream, person);
            byte[] byteArray = memoryStream.ToArray();

            Console.WriteLine(BitConverter.ToString(byteArray));
        }
    }
}

在上面的示例中,我们使用BinaryFormatterPerson对象序列化为字节数组,并将字节数组的十六进制表示打印到控制台。

这些是C#中常见的序列化方式的简单示例。

根据您的需求和具体情况,您可以选择适合您的序列化方式。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表