如何在.NET (C#) 中本地存储数据[关闭]

2023-12-04

我正在编写一个应用程序,它获取用户数据并将其存储在本地以供以后使用。应用程序将经常启动和停止,我想让它在应用程序启动/结束时保存/加载数据。

如果我使用平面文件,那就相当简单了,因为数据并不真正需要保护(它只会存储在这台电脑上)。我认为的选择是:

  • 平面文件
  • XML
  • SQL DB

平面文件需要更多的精力来维护(没有像 XML 那样的内置类),但是我以前没有使用过 XML,而且 SQL 对于这个相对简单的任务来说似乎有点大材小用。

还有其他值得探索的途径吗?如果不是,那么哪个是最好的解决方案?


编辑:为了向问题添加更多数据,基本上我唯一想存储的是一个看起来像这样的字典

Dictionary<string, List<Account>> 

其中 Account 是另一种自定义类型。

我会将字典序列化为 xmlroot,然后将帐户类型序列化为属性吗?


更新2:

所以序列化字典是可能的。让它变得复杂的是,这个字典的值本身就是一个泛型,它是 Account 类型的复杂数据结构的列表。每个帐户都相当简单,只是一堆属性。

据我了解,这里的目标是尝试并最终实现以下目标:

<Username1>
    <Account1>
        <Data1>data1</Data1>
        <Data2>data2</Data2>
    </Account1>
</Username1>
<Username2>
    <Account1>
        <Data1>data1</Data1>
        <Data2>data2</Data2>
    </Account1>
    <Account2>
        <Data1>data1</Data1>
        <Data2>data2</Data2>
    </Account2>
 </Username2>

正如你所看到的层次结构是

  • 用户名(字典字符串)>
  • 帐户(列表中的每个帐户)>
  • 帐户数据(即类属性)。

从获取此布局Dictionary<Username, List<Account>>这是棘手的一点,也是这个问题的本质。

这里有很多关于序列化的“如何”回复,这是我的错,因为我没有尽早说清楚,但现在我正在寻找一个明确的解决方案。


我将文件存储为JSON。由于您存储的字典只是名称/值对列表,因此这几乎就是 json 的设计目的。
有很多不错的免费 .NET json 库 - 这里是one但您可以在第一个链接上找到完整列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在.NET (C#) 中本地存储数据[关闭] 的相关文章

随机推荐

  • 快速排序未正确排序

    试图从快速排序的实现中学习 我无法找出它排序不正确的原因 使用这个序列 6 7 12 5 9 8 65 3 它返回这个 3 5 7 8 9 65 12 6 似乎有点排序 但不是全部 我错过了什么 这是我的代码 static void Mai
  • 如何使用 LSTM 自动编码器在多特征序列中正确忽略解码时填充或丢失的时间步

    我正在尝试通过使用自动编码器进行重建来学习文本序列的潜在表示 多个特征 3 由于某些序列比最大 pad 长度或我正在考虑的时间步长 seq length 15 短 我不确定重建是否会学会忽略时间步长或不计算损失或准确性 我遵循了来自的建议这
  • 为什么在java中方法外的变量可以有重复的变量名?

    我正在学习 Java 我知道您不能将内部作用域中声明的变量命名为与外部作用域中声明的变量相同的名称 如下所示 public class Practice public static void main String args int x 1
  • 带有 -i 选项的 sed 命令在 Mac 上失败,但在 Linux 上有效

    我已成功使用以下内容sed在 Linux 中搜索 替换文本的命令 sed i s old link new link g 然而 当我在 Mac OS X 上尝试时 我得到 命令 c 需要 后跟文本 我以为我的 Mac 运行的是普通的 BAS
  • Python:用字符序列查找所有可能的单词组合(分词)

    我正在做一些分词实验 如下所示 lst是一个字符序列 并且output是所有可能的词 lst a b c d def foo lst return output output a b c d ab c d a bc d a b cd ab
  • NSPredicate 用于一对多关系,其中关系 (NSSet) 必须包含 NSArray 中定义的实体

    给定以下核心数据模型 gt to one releationship gt gt to many relationship Entity A gt gt Entity B Entity B gt A each B belongs to ex
  • 尝试从会话范围 Bean 中获取 .getSessionMap() 时出现 IllegalStateException

    我是 Java 和 JSF 新手 我需要有关 IllegalStateException 的帮助 这是场景 在我当前的项目中 我有一个用于应用程序菜单的会话范围 bean public final class MenuBean implem
  • 实体框架太慢。我有什么选择? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我遵循 不要过早优化 的原则 并使用实体框架编写了我的 WCF 服务 但是 我分析了性能 发现实体框架太慢了 我的应用程序在大约 1 2 秒内处理
  • 如何在Python中合并重叠的字符串?

    我有一些绳子 SGALWDV GALWDVP ALWDVPS LWDVPSP WDVPSPV 这些字符串彼此部分重叠 如果您手动重叠它们 您将得到 SGALWDVPSPV 我想要一种从重叠字符串列表到 python 中的最终压缩字符串的方法
  • 存储对值类型的引用?

    我正在编写一个 监视器 对象以方便调试我的应用程序 可以在运行时从 IronPython 解释器访问此 Monitor 对象 我的问题是 在 C 中是否可以存储对值类型的引用 假设我有以下课程 class Test public int a
  • 如何在android中以编程方式运行SSH命令

    我想运行一个简单的 SSH 命令 例如ssh R 80 localhost 1337 serveo net 我知道有图书馆jsch这样做 但如果没有用户名和密码 它将无法工作 就我而言 不需要身份验证 我怎样才能做到这一点 Update当我
  • jQuery插件开发-返回this.each问题

    我正在尝试开发我的第一个 jQuery 插件 基本上 它将类附加到站点上的各种元素 然后在用户滚动时更改它 我正在计算偏移量等 我想我在这件事上碰壁了 这是我启动插件的方法 div myPlugin 以及来源 fn myPlugin fun
  • 如何发送由 ON_NOTIFY 处理的通知?

    我正在尝试将 LVN ITEMCHANGED 发布给我的自定义网格列表的所有者 我知道如何使用 PostMessage 发送 WM User 消息 如此处所示 PostMessage AfxGetMainWnd gt GetSafeHwnd
  • 覆盖 DI 范围内的服务实现

    如何使用miscrosoft 的默认 DI 机制在某个范围内注册不同的服务实现 我的情况是这样的 我有一个服务 我们称之为 MyJobService 它依赖于上下文值 登录的用户和其他一些信息 我已经注册了另一个服务 UserSession
  • 为什么我不能画一个有边框半径的圆?

    margin 0 div background color green height 900px width 50 margin auto border radius 50px overflow hidden padding 20px bo
  • 有没有通用的方法可以从矩阵中删除 NaN?

    有没有通用的方法可以从矩阵中删除 NaN 有时我在某些代码中间遇到这个问题 然后它会产生问题以获得适当的输出 有没有办法生成任何类型的检查以避免 MATLAB 代码中出现 NaN 如果有人能给我一个例子并提供一些与之相关的想法 那将非常有帮
  • CURL 问题(多)

    我有问题卷曲 多重 我想创建一个类 函数 它接收 1000 个 URL 并一次处理所有这些 URL 5 因此当 URL 完成下载时 它会将现在可用的插槽分配给尚未处理的新 URL然而 我见过some 实施的curl multi 但它们都不允
  • 打字稿模板文字作为界面键

    假设我想创建一个包含打字稿中多个项目的对象 如下所示 const obj Items item1 foo item2 bar item3 baz 我应该如何声明我的项目类型 以便它与任意数量的项目兼容 我使用 Typescript 4 1
  • 查看哪些 git 分支(或标签)指向给定的提交哈希?

    我可以通过运行达到我想要的效果 git log 1 decorate oneline
  • 如何在.NET (C#) 中本地存储数据[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在编写一个应用程序 它获取用户数据并将其存储在本地以供以后使用 应用程序将经常启动和停止 我想让它在应用程序启动 结束时保存 加载数据 如果我使用平面文件 那就相当简单了 因为数据并不