【问题标题】:C# - Store variables and user settings (number of variables and settings is not predefined)C# - 存储变量和用户设置(变量和设置的数量未预定义)
【发布时间】: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 来保存/加载列表。

标签: c# variables store


【解决方案1】:

如果变量和设置对于每个用户来说都是动态的,我会以 Json 格式存储它们并将其存储在数据库中。这使应用程序变得灵活。

在您的情况下,您提到每个用户可能会产生每个类的不同数量的集合,请尝试以 Json 格式存储。

【讨论】:

  • 谢谢。通过 Json,我可以在运行时直接访问变量吗?请注意,在开始时加载变量对我来说是不够的,我也应该在运行时直接访问它们(读取和设置)。
  • 一般来说是的,您应该能够在运行时从数据库中加载/读取设置和变量。
  • 如果你有一个数据库,为什么要把它序列化为 JSON?数据库还需要托管数据库的服务器。我可能也会将其保存为 JSON,但保存在文件中,而不是数据库中。
  • @Oliver,SQLite 数据库不需要服务器,数据库将数据存储在本地空间中。你建议在我的情况下使用 JSON 吗?
  • JSON 是否支持像类一样存储和加载一组变量?以及一个类(一组变量)的多个副本作为多组变量?
猜你喜欢
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多