我对代码进行了一些更改。 保存到磁盘的方法工作正常。
public void SaveList()
{
FileStream stream = new FileStream(@"persons.dat", FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, myList);
stream.Close();
}
public void ReadList()
{
FileStream stream = new FileStream(@"persons.dat", FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
List<Person> myList = formatter.Deserialize(stream) as List<Person>;
}
我可以看到正在创建persons.dat文件,并且正在将对象的状态保存到文件中。 但问题在于尝试阅读时。重新运行程序并调用方法ReadList()时,不会显示任何错误。然后我调用一个方法来显示存储在列表中的对象的细节,但列表是空的!!
答案 0 :(得分:0)
public void ReadList()
{
FileStream stream = new FileStream(@"persons.dat", FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
myList = (List<Person>)formatter.Deserialize(stream);
// Here I was creating a new list.. List<Person> myList = (List<Person>)formatter.Deserialize(stream);
stream.Close();
}
用上述方法解决了问题。 这个问题是我将对象添加到新列表而不是我在类中创建的列表。