Файл настроек IsolatedStorage не создан к моменту первого доступа - PullRequest
0 голосов
/ 02 марта 2012

я пытался сделать что-то вроде этого:

private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        var settings = IsolatedStorageSettings.ApplicationSettings;
        if (!settings.Contains("init"))
        {
            createStorage();
        }
     }
 public void createStorage()
    {
        var settings = IsolatedStorageSettings.ApplicationSettings;
        settings.Add("x", "randomtext");
        settings.Add("init", true);
    }

, затем я пытался ссылаться на переменную на изолированное хранилище в классе:

public string x = (string)IsolatedStorageSettings.ApplicationSettings["x"];

но похоже, чтоapplication_launching загружается после переменных класса, поэтому я получаю исключение keyNotFound.

как я могу справиться с этим?будет стереть 2 метода, и когда приложение падает, данные сохраняются.Кроме того, процесс app_launching будет ускорен, из-за этого.

так, как я мог справиться с этим?

спасибо roqstr

1 Ответ

3 голосов
/ 02 марта 2012

Поставьте флажок в настройках изолированного хранилища в конструкторе, а не в «событии запуска приложения»:

IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

public MainPage()
{
    InitializeComponent();
    createStorage();
}

public void createStorage()
{
    if (!settings.Contains("init"))
    {
        settings.Add("x", "randomtext");
        settings.Add("init", true);
    }
    settings.Save();      
}
...