我有一个存储在IsolatedStorage
..
我想通过调用另一个类的方法来访问它:
using (IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream fileStream = isolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Read))
{
return fileStream;
}
}
现在,当我以这种方式调用该方法时:
var fileStream = Musics.TryGetMusic("DaDaDa.mp3");
musicMediaElement.SetSource(fileStream);
musicMediaElement.Play();
我收到一条错误消息,说它无法读取已关闭的文件。
原因是我正在使用using
语句,当我调用Play()
时文件已关闭。
我该如何解决这个问题?
答案 0 :(得分:1)
这是因为,我认为你称之为
....
using (IsolatedStorageFileStream fileStream = isolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Read))
{
return fileStream;
}
....
退出using
语句后,fileStream
实例将被处理。
要解决此问题应该足以在此处不使用using
,而是跟踪该实例生命周期并在适当的位置手动调用dispose。