在 C#/.NET 中持久存储设置/变量

2024-04-11

好吧,这是一个全新的问题,所以请原谅我。

存储变量以使它们持久且可恢复的最佳方法是什么?我有一个小型应用程序,它使用大约 10 个变量(字符串和小数)作为设置。目前,我将它们全部转换为字符串,如果需要,将它们放入数组中并将数组序列化为文件。

如果我想添加变量,这会很痛苦。所以,我正在考虑使用哈希表并将其序列化。再次,不确定执行此操作的最佳方法是什么。

我的一些要求是数据需要安全存储(加密),并且必须可由其他应用程序访问(我有另外两个读取设置的小应用程序)。

我知道我把如此基本和简单的事情过于复杂化了。几乎每个构建的应用程序都必须执行此操作。

TIA


最简单、有效且最灵活的方法是创建一个类,添加设置,然后在需要时进行序列化/反序列化。该类的源代码可以在其他程序集中重用,并且可以在任何地方持久化。由于您的安全要求,请确保此类知道如何序列化/反序列化自身。这确保了实现与类保持一致。然后调用程序集只需要通过调用静态/共享方法来创建对象。

这为您提供了强类型设置、版本控制、添加新设置的能力,甚至是复杂的数据类型(其他类)。该对象甚至可以作为参数传递给其他对象,并且由于它支持序列化,因此非常灵活。

Example

See 操作方法(对象类 => 二进制序列化 => 到内存 => 加密 => 保存到文件) at http://social.msdn.microsoft.com/forums/en-US/netfxremoting/thread/68c200c2-4aa4-48dc-95be-6fe077fd10f4/ http://social.msdn.microsoft.com/forums/en-US/netfxremoting/thread/68c200c2-4aa4-48dc-95be-6fe077fd10f4/

参考

  • 版本容错序列化 at http://msdn.microsoft.com/en-us/library/ms229752(VS.80).aspx http://msdn.microsoft.com/en-us/library/ms229752(VS.80).aspx

  • 串行化接口 at http://msdn.microsoft.com/en-us/library/system.runtime.serialization.serializes.aspx http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

  • 隔离存储 at http://msdn.microsoft.com/en-us/library/3ak841sy.aspx http://msdn.microsoft.com/en-us/library/3ak841sy.aspx

  • 加密任务 at http://msdn.microsoft.com/en-us/library/7yx4d854.aspx http://msdn.microsoft.com/en-us/library/7yx4d854.aspx

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

在 C#/.NET 中持久存储设置/变量 的相关文章

  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • C++ 子字符串返回错误结果

    我有这个字符串 std string date 20121020 我正在做 std cout lt lt Date lt lt date lt lt n std cout lt lt Year lt lt date substr 0 4 l
  • 如何忽略“有符号和无符号整数表达式之间的比较”?

    谁能告诉我必须使用哪个标志才能使 gcc 忽略 有符号和无符号整数表达式之间的比较 警告消息 gcc Wno sign compare 但你确实应该修复它警告你的比较
  • 将布尔参数传递给 SQL Server 存储过程

    我早些时候问过这个问题 我以为我找到了问题所在 但我没有 我在将布尔参数传递给存储过程时遇到问题 这是我的 C 代码 public bool upload false protected void showDate object sende
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 带有用户信息的 Django Logger

    我只是好奇 是否可以放User内的信息formatters信息输入LOGGING配置在setting py 现在我只是将该信息放入要记录的消息中 但也许有一种方法可以将其设置为formatters争论 这是我的LOGGING现在的配置 LO
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 在 Eclipse 中更改概览标尺颜色

    如何更改概览规则背景Eclipse 3 4 0 I20080617 2000 中的颜色 编辑窗口右侧的垂直条 带有一些注释 常规 gt 编辑器 gt 文本编辑器 gt 注释仅允许更改标记本身的颜色 而不是整个栏的背景 看来我的网络搜索能力越
  • Laravel afterFind 回调事件

    laravel 中是否有像 cakePHP 中那样的 afterFind 模型事件 以便我可以在任何搜索查询后格式化数据 或任何其他方式来做到这一点 Thanks 它不是一个事件 而是一个可以在模型中设置的变异器 您只需在模型中创建一个名为
  • 导出 eclipse 可部署插件和片段时出错

    我有一个 Eclipse 插件在 Eclipse 环境中运行良好 我想将其导出为 jar 文件 因此我选择了 导出 gt 可部署插件和片段 我可以得到一个jar文件 但是报告了一个错误 打开日志文件 它报告我有 1242 个问题 191 个
  • 从顶部裁剪图像

    通过设置从底部 左侧或右侧裁剪图像非常容易overflow hidden图像容器的属性 div class img container img class img src img jpg div 有没有办法从顶部裁剪图像 如果正在调整窗口大
  • 如何为react-big-calendar(fullcalendar.js)设置momentLocalizer(moment.js)?

    我在用着反应大日历 https github com intljusticemission react big calendar并需要帮助来实现所需的本地化 来自 git 的示例 import BigCalendar from react
  • 加载巨大的 XML 文件并处理 MemoryError

    我有一个非常大的 XML 文件 准确地说是 20GB 是的 我需要全部 当我尝试加载该文件时 收到此错误 Python 23358 malloc mmap size 140736680968192 failed error code 12
  • 无法在 iOS 6 中以编程方式安装 ipa 文件

    我使用 MobileInstallationInstall 在越狱 iOS 中安装 ipa 文件 在iOS5中运行良好 但在iOS6中失败 我检查了日志并发现以下内容 需要有一个名为 com apple private mobileinst
  • C 易失性变量和高速缓存

    缓存是由缓存硬件对处理器透明地控制的 因此如果我们在C程序中使用易失性变量 如何保证我的程序每次都从指定的实际内存地址读取数据而不是缓存 我的理解是 Volatile 关键字告诉编译器不应优化变量引用 而应按照代码中的编程方式读取变量引用
  • MongooseError:Model.findOne() 不再接受回调

    考虑 app get posts postId function req res const requestedPostId req params postId Post findOne id requestedPostId functio
  • 检查一个值集合是否包含另一个值集合

    假设我有两个集合 如下所示 收藏1 A1 A1 M1 M2 收藏2 M2 M3 M1 A1 A1 A2 所有值都是字符串值 我想知道 Collection1 中的所有元素是否都包含在 Collection2 中 但我不能保证顺序 并且一个集
  • 如何获取Google服务帐户访问令牌javascript

    我正在尝试为我的网站设置一个分析仪表板 以便我的领导层查看网站使用情况 我不希望他们必须拥有谷歌帐户或单独添加他们才能看到结果 我已经设置了服务帐户和 OAuth2 访问权限 我找到的所有教程都显示这样的代码 gapi analytics
  • 如何通过宏检查是否使用了 GNU libstdc++?

    如何通过宏检查是否使用了 GNU GCC libstdc STL 实现 那可能吗 我希望它能在 GCC 和 Clang 中工作 对于 Linux 上的 C 11 它可能是唯一的选择 或者是吗 据我所知 STLport 不支持 C 11 在
  • AWS Chime - 将视频分配给图块无法按预期工作

    I have an AWS Chime meeting setup in this fashion with 5 video tiles video tile 0 through video tile 4 当会议建立时 观察者回调audio
  • Android 版 usbmon

    我想分析我的设备的 USB 通信 SGS4 我到处都看到需要配置 usbmon 并将其编译到内核中 Afaik 这个模块没有内置在android linux系统中 我在编译内核方面没有太多经验 但如果有必要 我会这样做 您能说出这样做的步骤
  • 使用 LINQ 简化 foreach 循环(在每次迭代中选择两个对象)

    给定以下接口和两个类 public interface IMyObj int Id get set public class MyObj1 IMyObj public MyObj1 int id Id id public int Id ge
  • 如何将自定义排序应用于数组?

    我想以自定义的方式对数组进行排序 示例是学生的班级水平 sortBy Junior Senior Freshman Sophomore function classlevel 理想情况下 排序应返回 Freshman Sophomore J
  • geom_密度匹配geom_histogram binwitdh

    我想在 ggplot2 中的分布条形图上添加一条线以显示平均分布 但遇到了麻烦 像这样的 ggplot 调用 ggplot x aes date received geom histogram aes y count binwidth 30
  • 组件在react-router-4中匹配空值

    我正在尝试迁移到使用 React Router 4 但在理解其逻辑时遇到了一些困难
  • 是否有在基于 DDD 的分层架构中的模型层和数据访问层之间使用 LINQ 的建议模式

    我一直在读蒂姆 麦卡锡的书关于 NET 中的 DDD 的精彩书籍 http www amazon co uk NET Domain Driven Design Solution Programmer dp 0470147563 但在他的示例
  • 在 C#/.NET 中持久存储设置/变量

    好吧 这是一个全新的问题 所以请原谅我 存储变量以使它们持久且可恢复的最佳方法是什么 我有一个小型应用程序 它使用大约 10 个变量 字符串和小数 作为设置 目前 我将它们全部转换为字符串 如果需要 将它们放入数组中并将数组序列化为文件 如