首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IsolatedStorage最佳实践

IsolatedStorage最佳实践
EN

Stack Overflow用户
提问于 2014-02-11 13:09:31
回答 1查看 56关注 0票数 0

我正在构建我的第一个WP8应用程序,我遇到了一个疑问。

我必须在IsolatedStorage中保存通过序列化三个不同对象获得的一些数据。

我加载这些数据的代码如下:

代码语言:javascript
复制
public static Statistics GetData()
    {
        Statistics data = new Statistics();
        try
        {
            using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
            {
                using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("stats.xml", FileMode.OpenOrCreate))
                {
                    XmlSerializer serializer = new XmlSerializer(typeof(Statistics));
                    data = (Statistics)serializer.Deserialize(stream);
                }
            }
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message + "\n" + e.InnerException);

        }

        return data;
    }

为了保存数据,当然是

代码语言:javascript
复制
public static void SaveStats(Statistics stats)
        {
            XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
            xmlWriterSettings.Indent = true;
            try
            {
                using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("stats.xml", FileMode.Create))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(Statistics));
                        using (XmlWriter xmlWriter = XmlWriter.Create(stream, xmlWriterSettings))
                        {
                            serializer.Serialize(xmlWriter, stats);
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("Salvataggio non riuscito");
            }
        }

这很好,现在的问题是我也要对另外两个类做同样的事情。

是否必须再次编写相同的精确代码,只需与其他类一起更改统计数据?

还是有更聪明的方法去做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-11 13:17:54

看看仿制药。序列化方法如下所示:

代码语言:javascript
复制
public static void SaveStats<T>(T obj) where T : class, new()
{
   ...
   XmlSerializer serializer = new XmlSerializer(typeof(T));
   ...
}

方法调用:

代码语言:javascript
复制
SaveStats<Statistics>(new Statistics());
SaveStats<OtherObject>(new OtherObject());
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21702764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档