IsolatedStorageException があるというスタック トレース レポートを受け取りました。
「フレーム イメージ関数オフセット
0 coredll.dll xxx_RaiseException
1 mscoree3_7.dll
2 mscoree3_7.dll
3 mscoree3_7.dll
4 TransitionStub
5 System.IO.IsolatedStorage.IsolatedStorageSettings.Save
6 System.IO.IsolatedStorage.IsolatedStorageSettings.Clear
7 AppName.CycleManager.WriteToIsolatedStorage
8 AppName.SettingsPage.OnNavigatedFrom
9 Microsoft.Phone.Controls.PhoneApplicationPage.InternalOnNavigatedFrom
10 System.Windows.Navigation.NavigationService.RaiseNavigated
11 System.Windows.Navigation.NavigationService.CompleteNavigation 12 System.Windows.Navigation.NavigationService.ContentLoader_BeginLoad_Callback
13 System.Windows.Navigation.PageResourceContentLoader.BeginLoad_OnUIThread 14 ._ c _DisplayClass4._BeginLoad_b__e3
_15. ms dll
16 mscoree3_7.dll
17 mscoree3_7.dll
18 System.Reflection.RuntimeMethodInfo.InternalInvoke 19 System.Reflection.RuntimeMethodInfo.InternalInvoke "
したがって、例外は WriteToIsolatedStorage() によって発生すると思います。
public void WriteToIsolatedStorage()
{
IsolatedStorageSettings dataStorage = IsolatedStorageSettings.ApplicationSettings;
dataStorage.Clear();
dataStorage.Add("firstLaunchDate", App.LaunchedDateTime);
dataStorage.Add("weekStart", m_bWeekStart);
dataStorage.Add("iHistCount", m_iHistCount);
// All the variables i need to store
dataStorage.Add("noteCount", m_noteCount);
WriteNotesToFile();
dataStorage.Add("weightCount", m_iWeightCount);
WriteWeightToFile();
dataStorage.Add("tempCount", m_iTempCount);
WriteTempToFile();
dataStorage.Save();
}
アップデート:
public void WriteNotesToFile()
{
if (m_noteCount > 0)
{
try
{
using (IsolatedStorageFile storagefile = IsolatedStorageFile.GetUserStoreForApplication())
{
if (storagefile.FileExists("NotesFile"))
{
using (IsolatedStorageFileStream fileStream = storagefile.OpenFile("NotesFile", FileMode.Open, FileAccess.ReadWrite))
{
StreamWriter writer = new StreamWriter(fileStream);
for (int i = 0; i < m_noteCount; i++)
{
//writer.Write(m_arrNoteDate[i].ToShortDateString());
writer.Write(m_arrNoteDate[i].ToString("d", CultureInfo.InvariantCulture));
writer.Write(" ");
writer.Write(m_arrNoteString[i]);
writer.WriteLine("~`");
}
writer.Close();
}
}
else
{
storagefile.CreateFile("NotesFile.txt");
using (IsolatedStorageFileStream fileStream = storagefile.OpenFile("NotesFile", FileMode.Create, FileAccess.ReadWrite))
{
StreamWriter writer = new StreamWriter(fileStream);
for (int i = 0; i < m_noteCount; i++)
{
//writer.Write(m_arrNoteDate[i].ToShortDateString());
writer.Write(m_arrNoteDate[i].ToString("d", CultureInfo.InvariantCulture));
writer.Write(" ");
writer.Write(m_arrNoteString[i]);
writer.WriteLine("~`");
}
writer.Close();
}
}
}
}
catch { }
}
}
例外がスローされる条件を誰か教えてください。十分なスペースがない場合、そのような例外がスローされることをどこかで読みました。
最後に、値を書き込む 4 つの独立したストレージ ファイルがあります。次の方法で 4 つすべてを削除できますか?
IsolatedStorageFile storagefile = IsolatedStorageFile.GetUserStoreForApplication();
storagefile.Remove();
誰かがこれらを明確にすることができれば、本当に感謝しています。
ありがとうございました、