バイナリ ファイルから読み取った要素をBindingList<Type>
. これはコードの不完全な部分です:
BindingList<Type> tmpList = null;
using (FileStream serializedListStream = File.OpenRead(_kReificableDroidsListPath))
{
BinaryFormatter serializer = new BinaryFormatter();
//Temporary list so that ListChanged event is fired
//upon adding new types
tmpList = serializer.Deserialize(serializedListStream) as BindingList<Type>;
foreach (Type droidType in tmpList)
{
ReificableDroids.Add(droidType);
}
}
Visual Studio デバッガーには、次の例外が表示されます。
System.IO.IOException: The process cannot access the file 'C:\Users\Zoneur\documents\visual studio 2012\Projects\Droid TP1\Droid TP2\bin\Debug\reificable_droids_list.bin' because it is being used by another process.
私が理解したのは、ファイルを閉じる必要があるということです。そのため、次のようにステートメントforeach
からループを取り出しました。using
BindingList<Type> tmpList = null;
using (FileStream serializedListStream = File.OpenRead(_kReificableDroidsListPath))
{
BinaryFormatter serializer = new BinaryFormatter();
//Temporary list so that ListChanged event is fired
//upon adding new types
tmpList = serializer.Deserialize(serializedListStream) as BindingList<Type>;
}
foreach (Type droidType in tmpList)
{
ReificableDroids.Add(droidType);
}
例外はスローされなくなりましたが、何が問題なのか理解できません...ReificableDroids
は type のプロパティですBindingList<Type>
。
また、ステートメントにforeach
ループを保持し、次using
のように型名をコンソールに出力するだけの場合:
foreach (Type droidType in tmpList)
{
Console.WriteLine(droidType.GetType().ToString());
}
例外もスローされません。
using ステートメントでこの例外がスローされる原因を知っている人はいますか?