0

データを分離ストレージに保存しましたが、電話を再起動すると、そこからこのデータを読み取ることができません。分離ストレージが空です。なんで?

電話を切らなくても大丈夫

これは私のコードです:

 using (Stream file = IsolatedStorageHelper.OpenFile(USER_ACCOUNT_FILE, fileMode.Create))
        {
            if (null != file)
            {
                try
                {
                    XDocument xml = new XDocument();
                    XElement root = new XElement("userAccount");

                    root.Add(new XAttribute("FirstName", this._firstName));
                    root.Add(new XAttribute("LastName", this._lastName));
                    root.Add(new XAttribute("ID", this._id));
                    root.Add(new XAttribute("Sex", this._sex));

                    xml.Add(root);

                    // save xml data
                    xml.Save(file);
                }
                catch
                {
                }
            }
        }

分離ストレージにファイルを作成する関数

static public IsolatedStorageFileStream OpenFile(string aFilename, FileMode mode)
            {
                IsolatedStorageFileStream res = null;

                using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
                {

                    try
                    {
                        res = new IsolatedStorageFileStream(aFilename, mode, FileAccess.ReadWrite, isoStore);
                    }
                    catch (Exception exc)
                    {
                        if ((null != (exc as IsolatedStorageException)) &&
                            (FileMode.Open != mode) &&
                            (true == createPathOnIsolatedStorage(isoStore,aFilename)) )
                        {
                            try
                            {
                                res = new IsolatedStorageFileStream(aFilename, mode, isoStore);
                            }
                            catch
                            {
                            }
                        }
                    }
                }

                return res;
            }
4

1 に答える 1

2

エミュレータでこれを実行することについて話している場合、これは正常な動作です。エミュレーターは、デフォルトでは分離ストレージを保持しません。

物理デバイスは、明示的にリセットされたり、アプリケーションがアンインストールされたり、アプリケーションが提供する手段の1つを介してユーザーによってコンテンツが削除されたりしない限り、常にデータをストレージに保持します。

于 2013-02-15T20:07:33.370 に答える