다음을 통해 공유


방법: 응용 프로그램 세션 간의 응용 프로그램 범위 속성 유지 및 복원

업데이트: 2007년 11월

이 예제에서는 응용 프로그램이 종료될 때 응용 프로그램 범위 속성을 유지하는 방법과 응용 프로그램이 다음에 실행될 때 응용 프로그램 범위 속성을 복원하는 방법을 보여 줍니다.

예제

응용 프로그램은 격리된 저장소에서 응용 프로그램 범위 속성을 유지하고 복원합니다. 격리된 저장소는 파일 액세스 권한 없이 응용 프로그램에서 안전하게 사용할 수 있는 보호된 저장소 영역입니다.

<Application
    xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="SDKSample.App"
    StartupUri="MainWindow.xaml" 
    Startup="App_Startup" 
    Exit="App_Exit">


...


</Application>
using System.Windows; // Application, StartupEventArgs
using System.IO; // StreamReader, FileMode
using System.IO.IsolatedStorage; // IsolatedStorageFile, IsolatedStorageFileStream

namespace SDKSample
{
    public partial class App : Application
    {
        string filename = "App.txt";



...


private void App_Startup(object sender, StartupEventArgs e)
{
    // Restore application-scope property from isolated storage
    IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForDomain();
    try
    {
        using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, FileMode.Open, storage))
        using (StreamReader reader = new StreamReader(stream))
        {
            // Restore each application-scope property individually
            while (!reader.EndOfStream)
            {
                string[] keyValue = reader.ReadLine().Split(new char[] {','});
                this.Properties[keyValue[0]] = keyValue[1];
            }
        }
    }
    catch (FileNotFoundException ex)
    {
        // Handle when file is not found in isolated storage:
        // * When the first application session
        // * When file has been deleted


...


            }
        }

        private void App_Exit(object sender, ExitEventArgs e)
        {
            // Persist application-scope property to isolated storage
            IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForDomain();
            using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, FileMode.Create, storage))
            using (StreamWriter writer = new StreamWriter(stream))
            {
                // Persist each application-scope property individually
                foreach (string key in this.Properties.Keys)
                {
                    writer.WriteLine("{0},{1}", key, this.Properties[key]);
                }
            }
        }
    }
}