在C#中,序列化和反序列化是将对象转换为字节流以便存储或传输,然后再将其还原为原始对象的过程。为了简化代码,你可以使用一些内置的序列化方法和库。
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
// 序列化
using (FileStream fileStream = new FileStream("person.bin", FileMode.Create))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(fileStream, person);
}
// 反序列化
using (FileStream fileStream = new FileStream("person.bin", FileMode.Open))
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
Person deserializedPerson = (Person)binaryFormatter.Deserialize(fileStream);
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
}
using System;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
// 序列化
string json = JsonConvert.SerializeObject(person);
Console.WriteLine($"Serialized JSON: {json}");
// 反序列化
Person deserializedPerson = JsonConvert.DeserializeObject<Person>(json);
Console.WriteLine($"Name: {deserializedPerson.Name}, Age: {deserializedPerson.Age}");
}
}
这两种方法都可以简化序列化和反序列化的代码。但是,请注意,BinaryFormatter已经被认为是不安全的,因为它容易受到攻击。在这种情况下,建议使用Json.NET库进行序列化和反序列化。