【发布时间】:2019-06-16 16:03:33
【问题描述】:
我正在开发一个包含许多类的应用程序(使用 C#)。每个用户可能为每个类生成不同数量的集合,例如:
用户1:Class1 2套,Class2 1套,Class3 3套。
用户2:Class1 1套,Class2 3套,Class3 1套。
然后,应用程序根据这些设置进行分析。
我正在寻找一种直接的方法来存储这些设置(即所有新生成的变量),然后加载和使用(或设置)它们,或者以交互方式访问(读取和设置,即直接访问变量)从应用程序的任何地方运行时间。速度不是我关心的问题。
我知道Properties.Settings,但就用户产生的未知数量的变量而言,它不是合适的方法(存储预定义的变量!)。
我在 StackOverflow 中搜索和搜索大约有两天时间,但我找不到直接的方法。
存储和访问变量并在运行时使用或稍后加载的最佳方法(最常规的方法)是什么,XML序列化,SQLite本地数据库或...?以及如何?
感谢您的宝贵时间。
添加:
另外,请考虑以下情况:
1- 用户可以在运行时更改变量的值,因此最好直接访问存储的变量。
2- 用户不得参与安装任何外部库、内容或第三方应用程序。一切都应该与我的应用程序一起安装。
3- 存储的数据不仅用于显示目的,还用于处理,因此我们处理任何类型的变量,例如bool、int、float、double、decimal、string等
4- 存储/加载属于一个类的多组变量(具有不同类型)。
5- 总体目标:
- 以交互方式和动态方式存储以前和新创建的数据
- 在运行时直接访问存储的数据并能够更改它们
- 开始时加载数据
- 直接访问应用程序中任意位置的数据
【问题讨论】:
-
所有这些类共享一个基类还是一个接口?
-
它们是有/没有接口的不同类。
-
那么您有一个
List<MyInterface> allClasses或某个对象,其中包含用户实例化的所有类的多个列表?如果是这种情况,您可以在需要时将此根列表/对象序列化为字符串并将其写入文件。开始时,您读取该文件并将其反序列化为根列表/对象。 -
您有一个包含所有实例的
List<MyInterface>,然后您序列化该列表。 -
谢谢。我将尝试使用 JSON 来保存/加载列表。