c# - C# - 存储变量和用户设置(变量和设置的数量未预定义)
问题描述
我正在开发一个有很多类的应用程序(使用 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- 总体目标:
- 以交互方式和动态方式存储以前和新创建的数据
- 在运行时直接访问存储的数据并能够更改它们
- 在开始时加载数据
- 直接访问应用程序中任何位置的数据
解决方案
如果变量和设置对于每个用户来说都是动态的,我会以Json格式存储它们并将其存储在数据库中。这使得应用程序灵活。
在您的情况下,您提到每个用户可能会产生每个类的不同数量的集合,请尝试以 Json 格式存储。
推荐阅读
- html - 如何使用 flex 平均分配保证金?
- swift - 无论如何不使用 optional 进行条件赋值吗?
- django - 如何反转名称中带有连字符的 URL?
- python-3.x - 如何在python3中平滑一条线?
- material-table - 如何在 React 材料表中使用千位分隔符(例如 412,335 而不是 412335)格式化数字单元格
- javascript - 完成 10 个随机页面中的 5 个页面
- javascript - 将绝对位置应用于附加子图像
- c# - 如何在日期时间选择器中找到选择位置?
- android - React Native Linking:从 Firebase Dynamic Link 读取 url 参数
- maven - 在 Maven 多模块项目中,如何从另一个模块获取一个模块的 buildVersion?