2

Win8 のローカル ストレージに読み書きしようとしています。ヘルパーを使用して自分のマシンに正常に書き込むことができますが、.xml ファイルを読み取ると、次のようになります: mscorlib.dllエラーで System.UnauthorizedAccessException が発生しました

私のコードを見ることができるように、コードペーストを作成しました。

http://codepaste.net/k9mht5

コードはここで失敗しています:

public async static Task<object> LoadData(string path, System.Type type)
{
    var _Folder = Windows.Storage.ApplicationData.Current.LocalFolder;

    try
    {
        var _File = await Folder.GetFileAsync(path);

        using (IInputStream inStream = await _File.OpenSequentialReadAsync())

        {
            // Deserialize the Session State
            XmlSerializer x = new XmlSerializer(type);
            return x.Deserialize(inStream.AsStreamForRead());
        }
    }
    catch (Exception ex)
    {
        MessageDialog dialog = new MessageDialog(ex.Message.ToString());
        dialog.ShowAsync();            
        return null; 
    }
}

具体的には、次の行で:

 using (IInputStream inStream = await _File.OpenSequentialReadAsync())

私が間違っていることについて何かアイデアがあれば、それは私を大いに助けてくれるでしょう.
私はリリースプレビューでこれをやっています。他に提供する必要があるシステム情報がある場合は、お知らせください。

4

2 に答える 2

5

さて、ここで私が気づいたことです。ファイルに次々vehicleViewModel.csと呼び出します。これらのメソッドは両方とも、fire and forgetを意味するとして宣言されています。私の考えでは、SaveList が保存しようとしている間、GetList は同時に 1 つのファイルを読み取ろうとしています。あなたのコードを試してみましたが、同じエラーが発生しました。SaveList および GetList メソッドを に変更してから、次を使用してみてください。SaveList();GetList();async voidasync Taskawait

await SaveList();
await GetList();

それは私のためにトリックをしました。

于 2012-09-06T12:56:03.783 に答える