在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类,并使用XmlSerializer将Person对象序列化为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));
}
}
}
在上面的示例中,我们使用BinaryFormatter将Person对象序列化为字节数组,并将字节数组的十六进制表示打印到控制台。
这些是C#中常见的序列化方式的简单示例。
根据您的需求和具体情况,您可以选择适合您的序列化方式。