gpt4 book ai didi

c# - 使用 C# 的序列化异常

转载 作者:太空狗 更新时间:2023-10-30 01:34:27 24 4
gpt4 key购买 nike

我是 C# 的新手并试图将一些信息写入文件。当我在同一个 .cs 文件中有 Car 类时,我使程序正常运行,但是当我将此类删除到项目中的另一个 .cs 文件中时,我得到运行时错误

"SerializationException was unhandled: The ObjectManager found an invalid number of fixups. This usually indicates a problem in the Formatter".

下面是包含 Car 类的代码。当我将类移动到它自己的 Car.cs 文件时,错误开始被抛出。

namespace ConsoleApplication2
{
class Program
{

[Serializable()]
public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }

public Car(string make, string model, int year)
{
Make = make;
Model = model;
Year = year;
}
}
/// <summary>
/// Deserializes list of cars and returns the list to user
/// </summary>
/// <returns>Returns deserialized car list</returns>
public List<Car> ReadList()
{
//create local list to hold data
List<Car> carList = new List<Car>();

try
{
using (Stream stream = File.Open("data.bin", FileMode.Open))
{
BinaryFormatter bin = new BinaryFormatter();

//point carList to deserialized stream
carList = (List<Car>)bin.Deserialize(stream);

}
}
catch (IOException)
{
}

return carList;
}

最佳答案

当 data.bin 首次创建时,类类型与数据一起存储。如果更改类的命名空间,格式化程序将无法找到存储的类。

关于c# - 使用 C# 的序列化异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com