1

2番目のusing(StreamWriterステートメントで次のようになります。

値が期待範囲内にありません。

            #region save allowance
            IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();

            //Open existing file
            IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile("foo.txt", FileMode.Truncate, FileAccess.Write);
            using (StreamWriter writer = new StreamWriter(fileStream))
            {
                writer.Write(App.ViewModel.Foo);
            }
            #endregion

            #region save log

            IsolatedStorageFileStream fileStream2 = myIsolatedStorage.OpenFile("log.txt", FileMode.Truncate, FileAccess.Write);
            using (StreamWriter writer = new StreamWriter(fileStream))
            {
                foreach( var i in App.ViewModel.Items )
                    writer.Write(i.ToString());
            }

            #endregion
4

1 に答える 1

1

fileStream2 の代わりに fileStream を 2 回目に再利用しています。ところで、この種の間違いを避けるために、ファイルストリームを using ブロック内にラップすることをお勧めします。

        #region save allowance
        IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication();

        //Open existing file
        using (var writer = new StreamWriter(myIsolatedStorage.OpenFile("foo.txt", FileMode.Truncate, FileAccess.Write)))
        {
            writer.Write(App.ViewModel.Foo);
        }
        #endregion

        #region save log

        using (var writer = new StreamWriter(myIsolatedStorage.OpenFile("log.txt", FileMode.Truncate, FileAccess.Write)))
        {
            foreach( var i in App.ViewModel.Items )
                writer.Write(i.ToString());
        }

        #endregion
于 2012-06-07T20:32:00.857 に答える