【问题标题】:What is the *right* way to save complex user data in Windows Store App development?在 Windows 应用商店应用开发中保存复杂用户数据的*正确*方法是什么?
【发布时间】:2014-01-13 23:47:58
【问题描述】:

我正在学习 Windows 应用商店应用程序开发。我是一名 iOS 开发人员,有很多 Cocoa Touch 经验,但没有 Microsoft 技术经验,所以从语言到工具的一切对我来说都是新的。

我不知道在 Windows 应用商店应用中保存复杂用户数据的正确方法是什么。我一直处理在 iOS 中保存用户数据的方式是拥有一个类(或一系列类)来代表我的应用程序的数据模型,我为了保存而对它进行序列化和反序列化(使用 NSCoder / encodeWithCoder / decodeWithCoder)。我以为这就是我在 Windows 应用商店应用程序上会做的事情,但经过数小时的研究和反复试验(主要是错误),我认为这不是这个世界的做法。

这是我的用例:我正在编写一个简单的图像处理/拼贴应用程序,它允许用户导入照片、排列和处理它们,然后保存或共享输出。我的数据模型是一个管理图像数组的类。图像的属性反映了它们的位置、变换等。

为了让我的用户保存和加载他们的创作,我想我只需序列化和反序列化我的数据模型类。但是,Windows Store 应用似乎只有 XMLSerializer,而且非常有限。你不能序列化图像,更不用说图像数组了。最重要的是,它似乎需要大量的管道代码,我什至找不到用于自定义类的示例。你可以用它来序列化一个字符串,但任何更复杂的东西似乎都不存在。

那么,Windows 开发人员,正确的方法是什么?我是否应该复制给定拼贴的所有文件,将它们放在一个目录中,保存在哪里显示哪些文件的清单,压缩它,然后调用我的文件?这似乎是一项大量的工作。我的研究有疏忽吗?有没有一种简单的方法可以像在 iOS 上那样对我的数据模型进行二进制序列化?

非常感谢的帮助:)

【问题讨论】:

    标签: c# windows windows-runtime windows-8.1


    【解决方案1】:

    序列化对象模型的方法有很多种,但我使用的是DataContractSerializer

    它按照您的描述工作,您编写一些类,为它们添加序列化属性,然后简单地使用DataContractSerializer 序列化它们。

    图像不被它序列化,你必须自己处理。

    【讨论】:

    • 谢谢。我标记为“已回答”,因为这似乎是 Windows 的做事方式,但它无法与 iOS 上的 NSCoder 相提并论。不得不自己处理图像很糟糕。我只想序列化我的整个对象,我不想搞砸细节。不过还是谢谢你的回复。
    • 我感受到了你的痛苦,因为我自己制作了一个拼贴应用程序(称为 phototastic)并且遇到了同样的问题......
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    相关资源
    最近更新 更多