![](/img/trans.png)
[英]InvalidDataContractException with IsolatedStorageSettings on WP7
[英]Argument exception in IsolatedStorageSettings in WP7
在下面的代碼中,我正在獲取ArgumentException
。 此代碼檢查是否在IsolatedStorageSetting
設置了key
。 如果不存在,則創建它。 此時,發生異常,消息value does not fall within the expected range
。 我在做什么錯?
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("bm"))
{
string k = (string) settings["bm"];
if (k == "1")
{
cb1.IsChecked = true;
}
else
{
cb1.IsChecked = false;
}
}
else
{
cb1.IsChecked=true;
settings.Add("bm","1"); //exception occurs here
settings.Save();
}
}
正如我們在MSDN中看到的
ArgumentException
發生在
字典中已存在該鍵。
因此,我可以看到兩個問題:
嘗試定義一個常量字符串:
private const string BM_KEY = "bm";
並在您每次訪問設置時使用它。
if (settings.Contains(BM_KEY))
{
string k = (string) settings[BM_KEY];
if (k == "1")
{
cb1.IsChecked = true;
}
else
{
cb1.IsChecked = false;
}
}
else
{
cb1.IsChecked=true;
settings.Add(BM_KEY,"1"); //exception occurs here
settings.Save();
}
確保您每次都使用相同的密鑰。
或者嘗試刪除現有的鍵(例如“ lastBranoCalled”);)
if (IsolatedStorageSettings.ApplicationSettings.Remove("lastBranoCalled"))
IsolatedStorageSettings.ApplicationSettings.Add("lastBranoCalled", this.Panorama.SelectedIndex.ToString());
else MessageBox.Show("Error");
else IsolatedStorageSettings.ApplicationSettings.Add("lastBranoCalled", this.Panorama.SelectedIndex.ToString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.