繁体   English   中英

如何在Windows Phone 7的隔离存储中存储数据

[英]How to store data in Isolated Storage in Windows Phone 7

我正在为Windows Phone 7构建应用程序。
我正在使用来自Web服务的数据,我想将其保存在隔离的存储中,以便下次查看数据时,即使脱机也可以显示数据。

我的cs文件是:

public about()
{
    InitializeComponent();

    KejriwalService.aapSoapClient myclient = new KejriwalService.aapSoapClient();
    myclient.getarvindAboutCompleted += new EventHandler<KejriwalService.getarvindAboutCompletedEventArgs>(myclient_getarvindAboutCompleted);
    myclient.getarvindAboutAsync();        
}

void myclient_getarvindAboutCompleted(object sender, KejriwalService.getarvindAboutCompletedEventArgs e)
{
    var data = e.Result;

    XElement xml = XElement.Parse(data);

    aboutview.Text = xml.Elements("UserDetails").Elements("about_details").First().Value;
}

存储数据的最简单方法之一是将它们存储在IsolatedStorageSettings中。 您可以为此目的创建一个属性:

        string PropertyName
        {
            get
            {
                var settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
                if (settings.Contains("valueKeyName"))
                    return (string)settings["valueKeyName"];
                else
                    return null;
            }
            set
            {
                var settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
                if (settings.Contains("valueKeyName"))
                    settings["valueKeyName"] = value;
                else
                    settings.Add("valueKeyName", value);
            }
        }

IsolatedStorageSettings将键值对存储在字典中。 您应该只选择存储值的键名和属性名。

借助IsolatedStorageSettings,您可以将数据以键值对的形式保存,如下所示:

 var Iso_settings = System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;   
if (!Iso_settings.Contains("yourDataKey"))
    {
      Iso_settings.Add("yourDataKey", yourDataValue);
      Iso_settings.Save()//This will save your data in isolated storage.
    }

如果您不希望脱机数据并存储数据,请不要使用Sqlite。两种最佳方法是使用隔离存储和linq,因此,如果您只有1-2个数据成员,并且必须更改那里的值,则可以使用如果您有2-3列和行以表的形式存储数据,则用LINQ进行独立存储。
隔离存储的用法如下:

try
{
    if (IsolatedStorageSettings.ApplicationSettings.Contains("email_id"))
    {
        IsolatedStorageSettings.ApplicationSettings["email_id"] = emailid;
        IsolatedStorageSettings.ApplicationSettings["password"] = password;
        IsolatedStorageSettings.ApplicationSettings.Save();
    }
    else
    {
        IsolatedStorageSettings.ApplicationSettings.Add("email_id", emailid);
        IsolatedStorageSettings.ApplicationSettings.Add("password", password);
        IsolatedStorageSettings.ApplicationSettings.Save();
    }
}
catch (Exception ex)
{
    Console.WriteLine(ex.InnerException);
}

对于linq, 访问http://www.codeproject.com/Articles/43025/A-LINQ-Tutorial-Mapping-Tables-to-Objects

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM