关于存储数据,我需要一些建议/意见。
我正在研究本质上存储用户输入数据,然后经常引用它。我想避免数据库存储,因为所有这些都将在本地引用。我已经看到您可以进行XML序列化的对象等,并且想知道您对数据存储的看法。
如果我逐步了解您正在做的事情,则可能会更好地帮助我了解要实现的目标:
这是一个很大的任务,我一直在考虑使用XML来完成所有工作。我不确定这是否是最好的方法,并希望您提出意见。主要是由于数据可以通过用户输入始终动态调整的方式。
对此表示感谢。如有必要,我可以提供我想达到的目标的图像。
答案 0 :(得分:2)
我个人使用Newtonsoft JSON保存用户数据。您可以像往常一样构建所有类,然后相当轻松地集成JSON序列化器/反序列化器。可能会有一些例外情况可能需要自定义序列化程序,但是要进行定制并不是很困难,特别是如果您只需要解释一小部分,然后可以将文件的其余部分传递给默认序列化程序,则尤其如此。
这是一个非常简单的示例,说明如何在文件中存储一些用户的一些键值首选项。
using Newtonsoft.Json;
[JsonObject]
public class UserData {
[JsonProperty] //Add a JSON property "Username" which is a string
public string Username { get; set; }
//IEnumerable types are converted to/from arrays automatically by Newtonsoft
[JsonProperty("Options")] //Set the name in JSON file to "Options"
public Dictionary<string, string> Preferences { get; set; }
[JsonIgnore] //Excludes this property from the JSON output
public bool SaveRequired { get; set; } //Set true when a change is made, set false when saved
}
有很多类似的库可以对XML进行完全相同的处理,但是我没有太多运气来弄清楚它们,而且当我只需要我知道的有效方法时,通常我的时间很紧。 如果您可以找到一个不错的XML库并理解如何正确使用它,由于其严格的结构性质,我建议您使用XML over JSON,并且您可以包括模式版本,并通过提供编写良好的模式来帮助集成到其他系统中。