0

コードにいくつかの変更を加えました。ディスクに保存する方法は正常に機能しています。

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() を呼び出すと、エラーは表示されません。次に、リストに格納されているオブジェクトの詳細を表示するメソッドを呼び出しますが、リストは空です!!

4

1 に答える 1

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();
}

上記の方法で問題は解決しました。この問題は、クラスで作成したリストではなく、新しいリストにオブジェクトを追加していたことにありました。

于 2013-10-20T19:33:20.497 に答える