117.info
人生若只如初见

C#中的序列化与反序列化

序列化是将对象转换为可存储或传输的格式,例如字符串、字节流等。在C#中,常见的序列化方式包括XML序列化、JSON序列化和二进制序列化。

XML序列化使用XmlSerializer类来将对象序列化为XML格式的字符串,或将XML字符串反序列化为对象。JSON序列化使用JavaScriptSerializer或Json.NET库来将对象序列化为JSON格式的字符串,或将JSON字符串反序列化为对象。二进制序列化使用BinaryFormatter类来将对象序列化为字节流,或将字节流反序列化为对象。

以下是一个示例,演示如何在C#中使用XmlSerializer进行序列化和反序列化:

using System;
using System.IO;
using System.Xml.Serialization;

// 定义一个简单的类
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

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

        // 创建XmlSerializer对象
        XmlSerializer serializer = new XmlSerializer(typeof(Person));

        // 将对象序列化为XML格式的字符串
        StringWriter writer = new StringWriter();
        serializer.Serialize(writer, person);
        string xmlString = writer.ToString();
        Console.WriteLine("Serialized XML:");
        Console.WriteLine(xmlString);

        // 将XML字符串反序列化为对象
        StringReader reader = new StringReader(xmlString);
        Person deserializedPerson = (Person)serializer.Deserialize(reader);
        Console.WriteLine("Deserialized Person:");
        Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
    }
}

以上示例演示了如何使用XmlSerializer类将Person对象序列化为XML字符串,并将XML字符串反序列化为Person对象。其他序列化方式的使用方法类似,只需替换相应的序列化类即可。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe0e3AzsBCAZTAg.html

推荐文章

  • C#枚举类如何实现类型安全

    C#中的枚举类可以实现类型安全,保证在编译时就能捕捉到类型错误。要实现类型安全的枚举类,可以按照以下步骤进行: 定义一个枚举类,使用关键字 enum,例如: p...

  • C#枚举类的使用场景有哪些

    状态管理:枚举类可以用来定义不同的状态,比如订单状态(待支付、已支付、已完成等),用户状态(激活、冻结、已删除等)等。 配置管理:枚举类可以用来定义不同...

  • 如何在C#中定义枚举类

    在C#中,可以通过使用关键字enum来定义一个枚举类。下面是一个示例:
    public enum Weekday
    { Monday, Tuesday, Wednesday, Thursday, Friday, Saturda...

  • C#枚举类有哪些类型

    在C#中,枚举类有以下几种类型: 默认枚举类型:默认枚举类型是通过关键字enum定义的,其中列出了一组常量值,每个常量都有一个整数值与之关联。
    标志枚举类...

  • C#中的反射机制如何应用

    反射机制是 C# 中一个非常强大且灵活的特性,可以让我们在运行时获取和操作程序集中的类型信息,调用对象的方法,修改对象的属性等。以下是一些反射机制在 C# 中...

  • C#中的委托与事件如何关联

    在C#中,委托和事件之间的关联是通过委托类型和事件类型来实现的。委托是一种类型,可以用来定义方法的签名和调用方法,而事件是一种特殊的委托,用来通知其他对...

  • C#中的异步编程如何进行

    在C#中,异步编程可以使用async和await关键字来实现。下面是一个简单的示例:
    using System;
    using System.Threading.Tasks; class Program
    { st...

  • C#中的接口继承如何实现

    在C#中,接口继承可以通过在接口定义中使用继承关键字:来实现。语法如下:
    interface IBaseInterface
    { void BaseMethod();
    } interface IDerive...