首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

序列化如何在.Net中运行

序列化是一种将对象转换为可存储或传输的格式的过程。在.NET中,序列化通常涉及到将对象转换为字节流,以便在网络上发送或将其存储到磁盘上。以下是在.NET中运行序列化的一些方法:

  1. 使用BinaryFormatter进行二进制序列化:BinaryFormatter是.NET框架提供的一个类,可以将对象序列化为二进制格式。这种格式具有较高的性能和紧凑性,但不太适合跨平台和跨语言使用。
代码语言:csharp
复制
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

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

public static void Serialize(Person person, string fileName)
{
    BinaryFormatter formatter = new BinaryFormatter();
    using (FileStream stream = new FileStream(fileName, FileMode.Create))
    {
        formatter.Serialize(stream, person);
    }
}

public static Person Deserialize(string fileName)
{
    BinaryFormatter formatter = new BinaryFormatter();
    using (FileStream stream = new FileStream(fileName, FileMode.Open))
    {
        return (Person)formatter.Deserialize(stream);
    }
}
  1. 使用XmlSerializer进行XML序列化:XmlSerializer是.NET框架提供的一个类,可以将对象序列化为XML格式。这种格式更适合跨平台和跨语言使用,但性能和紧凑性较差。
代码语言:csharp
复制
using System.IO;
using System.Xml.Serialization;

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

public static void Serialize(Person person, string fileName)
{
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    using (FileStream stream = new FileStream(fileName, FileMode.Create))
    {
        serializer.Serialize(stream, person);
    }
}

public static Person Deserialize(string fileName)
{
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    using (FileStream stream = new FileStream(fileName, FileMode.Open))
    {
        return (Person)serializer.Deserialize(stream);
    }
}
  1. 使用DataContractSerializer进行数据协定序列化:DataContractSerializer是.NET框架提供的一个类,可以将对象序列化为XML或JSON格式。这种格式更适合跨平台和跨语言使用,并且支持JSON格式。
代码语言:csharp
复制
using System.IO;
using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;

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

public static void Serialize(Person person, string fileName)
{
    DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
    using (FileStream stream = new FileStream(fileName, FileMode.Create))
    {
        serializer.WriteObject(stream, person);
    }
}

public static Person Deserialize(string fileName)
{
    DataContractSerializer serializer = new DataContractSerializer(typeof(Person));
    using (FileStream stream = new FileStream(fileName, FileMode.Open))
    {
        return (Person)serializer.ReadObject(stream);
    }
}

在选择序列化方式时,需要根据具体的需求和场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券