我想将新闻应用程序提交到Windows应用商店,但它始终未通过应用认证过程(提交前进行本地检查),因为我在暂停应用时使用XmlSerializer将数据序列化为XML文件(OnSuspended-Event) )。当我没有序列化时,该应用程序成功通过了此认证过程......
documentation表明以下内容:
当您对数据进行序列化时,应该避免重新序列化 没有改变。序列化和保存数据需要额外的时间, 加上应用程序激活时,加上额外的时间来读取和反序列化它 再次。相反,我们建议应用确定其状态是否有 实际上已更改,如果是,则仅序列化和反序列化数据 改变了。
我真的很喜欢这个想法,但不幸的是不知道如何实现它。我有一个包含新闻项目的集合(在应用程序启动时下载),用户下载这些新闻项目的详细信息。因此,基本上在暂停时我只应序列化这些细节,并在初始加载后序列化新闻项目。我怎样才能做到这一点?
感谢您的帮助!
答案 0 :(得分:1)
简单的只读数据:
如果用户做了一些更改怎么办:
这里真正的要点是,在暂停时你应该没有任何东西或几乎无所事事。暂停事件旨在为您的应用提供时间来保存其状态。它无意保存其数据。这是因为最轻微的打嗝可能导致您的保存过程失败,并且因为您只有几秒钟(没有任何怜悯),您的数据将丢失,您的应用程序看起来很糟糕。
由于快速应用切换,您在内存中已有的缓存不会更改。因为您明确监视来自服务的更新或用户的更改,所以您没有理由“确定”内存中的内容与缓存文件中的内容之间是否存在增量。
另一个建议是,如果整个对象很大,请不要将整个对象序列化为单个文件。由于性能原因,没有理由不能破坏您的类并单独列出和序列化它们。说实话,这很常见。