在调试会话之间保留 app.config 中的数据

2023-11-26

因此,长话短说,我正在开发一个应用程序,它将利用一些可能在运行时通过应用程序本身更改的配置信息。为此,我想使用Settings class.

问题在于,信息在应用程序的不同运行之间没有保留:

Run 1)

Console.WriteLine(Settings.Default["User"]); //prints "Default user"
Settings.Default["User"] = "abc";
Console.WriteLine(Settings.Default["User"]); //prints "abc"

Run 2)

Console.WriteLine(Settings.Default["User"]); //prints "Default user"
Settings.Default["User"] = "abc";
Console.WriteLine(Settings.Default["User"]); //prints "abc"

(两者打印完全相同的输出)

两次运行都显示相同的第一个打印“默认用户”,尽管在第二次运行时我想得到“abc”,表明该信息在不同的应用程序执行之间没有保留。

我承认这一定与 Visual Studio 处理 .config 文件的方式有关,但即便如此,我想知道如何纠正这种(讨厌的)行为?


默认情况下,App.config不会直接复制,而是将其内容放置在<assembly-name>.config输出文件夹中的文件。复印设置不适用于此操作。

一般来说,应用程序更改自己的 app.config 并不是一个好的做法。如果您正在开发可由同一台 PC 上的多个用户使用的应用程序,那么使用设置反而。这样每个用户都可以有自己的设置。

对于服务和系统范围的设置,请考虑使用其他存储,例如单独的配置文件、注册表或数据库。

关于保存设置的编辑:

使用设置类时,应调用 Save() 将其写入文件,否则当应用程序关闭时,设置更改将被丢弃。如果您经常在开发过程中终止应用程序,并且它没有到达结束代码(您通常会在其中调用 Save()),那么您有多种选择:

  1. 使用调试器监视窗口调用 Save()。为此,请放置如下表达式Settings.Default.Save()在监视窗口中并在每次要保存时刷新它。
  2. 您可以尝试使用计时器每秒调用一次 Save。
  3. 设置更改后,您可以在代码中插入 Save() 调用。
  4. 您可以编写自定义设置提供程序或包装器,以便在每次更改后立即保存设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在调试会话之间保留 app.config 中的数据 的相关文章

  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • C++ 求二维数组每一行的最大值

    我已经设法用这个找到我的二维数组的每一行的最小值 void findLowest int A Cm int n int m int min A 0 0 for int i 0 i lt n i for int j 0 j lt m j if
  • 无法创建 IOS 存档:路径(目录名称必须小于 248 个字符)和/或文件名(必须小于 260 个字符)太长

    ERROR 无法创建 IOS 存档 MyIosProject 进程无法在 XMA 服务器上执行 解压文件时出错C Users myusername AppData Local Xamarin iOS Archives 2020 04 08
  • Cygwin 下使用 CMake 编译库

    我一直在尝试使用 CMake 来编译 TinyXML 作为一种迷你项目 尝试学习 CMake 作为补充 我试图将其编译成动态库并自行安装 以便它可以工作 到目前为止 我已经设法编译和安装它 但它编译成 dll 和 dll a 让它工作的唯一
  • 将字符串从非托管代码传递到托管

    我在将字符串从非托管代码传递到托管代码时遇到问题 在我的非托管类中 非托管类 cpp 我有一个来自托管代码的函数指针 TESTCALLBACK FUNCTION testCbFunc TESTCALLBACK FUNCTION 接受一个字符
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • 使用 C# 在 WinRT 中获取可用磁盘空间

    DllImport kernel32 dll SetLastError true static extern bool GetDiskFreeSpaceEx string lpDirectoryName out ulong lpFreeBy
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • 基于范围的 for 循环中的未命名循环变量?

    有没有什么方法可以不在基于范围的 for 循环中 使用 循环变量 同时也避免编译器发出有关未使用它的警告 对于上下文 我正在尝试执行以下操作 我启用了 将警告视为错误 并且我不想进行像通过在某处毫无意义地提及变量来强制 使用 变量这样的黑客
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 像“1$”这样的位置参数如何与 printf() 一起使用?

    By man I find printf d width num and printf 2 1 d width num 是等价的 但在我看来 第二种风格应该与以下相同 printf d num width 然而通过测试似乎man是对的 为什
  • .NET 选项将视频文件流式传输为网络摄像头图像

    我有兴趣开发一个应用程序 它允许我从 xml 构建视频列表 包含视频标题 持续时间等 并将该列表作为我的网络摄像头流播放 这意味着 如果我要访问 ustream tv 或在实时通讯软件上激活我的网络摄像头 我的视频播放列表将注册为我的活动网
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 不同类型的指针可以互相分配吗?

    考虑到 T1 p1 T2 p2 我们可以将 p1 分配给 p2 或反之亦然吗 如果是这样 是否可以不使用强制转换来完成 或者我们必须使用强制转换 首先 让我们考虑不进行强制转换的分配 C 2018 6 5 16 1 1 列出了简单赋值的约束

随机推荐

  • 无法在 Swift 应用中导入 Firebase

    In attempting to learn Firebase I followed the steps in the IOS Quickstart section of the Firebase website I use Cocoapo
  • 检查数独解决方案是否有效[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 您将获得数独谜题的解决方案 编写代码来检查它是否是有效的解决方案 你的函数签名应该是 布尔 isValid int 开始 int 开始 int 结束 int endi 对于不熟悉
  • 不明确的列名错误,如何修复?

    1 Users 4 Cols UserID UserName RealName Flags 2 UsersGroups 2 Cols UserID GroupID 3 Groups 3 Cols GroupID GroupName Flag
  • bash 使用陷阱 SIGCHLD 重新启动子进程?

    我见过监控程序要么在脚本中定期使用 ps 或 服务状态 在 Linux 上 检查进程状态 要么在 C C 中分叉并等待进程 我想知道是否可以将 bash 与 trap 一起使用 并在收到 SIGCHLD 时重新启动子进程 我已经在 RedH
  • 身份验证失败 [SMTP:STARTTLS 失败(代码:220,响应:2.0.0 准备启动 TLS)]

    我尝试使用 SMTP 和 PEAR 在 PHP 中发送带有附件的电子邮件 但收到错误 身份验证失败 SMTP STARTTLS 失败 代码 220 响应 2 0 0 准备启动 TLS
  • Windows CE 在重置时删除 .NET CF

    我正在为专有的 Windows CE 4 2 设备编写一个 C 应用程序 我没有该设备的规格或几乎任何其他信息 我可以访问文件系统 基本上就是这样 我也无法获得原始制造商的支持 现在 我可以很好地安装 NET Compact 框架 并且一切
  • 将 cv::Mat 转换为 const CvMat* 或 CvMat*

    我只知道C语言 所以我感到困惑 不理解的语法openCV数据类型 特别是cv Mat CvMat Mat 我的问题是如何转换cv Mat to const CvMat or CvMat 并且任何人都可以提供文档链接来了解两者之间的差异CvM
  • Windows 7 - 任务栏 - 固定或取消固定程序链接

    如标题所示 有 Win32 API 可以做到这一点吗 不要这样做 我 99 确信没有官方 API 这与没有官方 API 的原因完全相同以编程方式访问旧的 开始 菜单的引脚列表 简而言之 大多数用户不希望程序放入垃圾their收藏夹 快速启动
  • 错误:资源 android:attr/fontVariationSettings 未找到

    警告 android dexOptions incremental属性已弃用 并且它对构建过程没有影响 home midhilaj gradle caches transforms 1 files 1 1 appcompat v7 26 1
  • NiFi - 如何在 ExecuteStreamCommand 中引用 flowFile?

    我需要执行类似的操作 sed 1d simple tsv gt noHeader tsv 这将从我的大流文件 gt 1 GB 中删除第一行 问题是 我需要在我的流程文件上执行它 所以它是 sed 1d myFlowFile gt myFlo
  • 当计划的 WebJob 长时间运行时会发生什么

    如果计划运行 Azure WebJob 但之前运行的实例尚未完成 会发生什么情况 它会再次运行 WebJob 以便同时运行两个 WebJob 吗 它不会运行 WebJob 并重新开始计时吗 我无法在任何地方找到这种行为的记录 我有一项工作想
  • numpy 数组上的条件运算

    我是 NumPy 新手 在 numpy 数组上运行一些条件语句时遇到了问题 假设我有 3 个 numpy 数组 如下所示 a 0 4 4 2 1 3 0 2 3 2 4 4 b 6 9 8 6 7 7 9 6 8 6 5 7 and c 0
  • 将 Python Poetry 与 Docker 集成

    你能给我举个例子吗Dockerfile我可以在其中安装我需要的所有软件包poetry lock and pyproject toml从 Docker 进入我的镜像 容器 使用时有几点需要注意poetry和 一起docker 安装 官方安装方
  • AWS Glue 谓词下推条件无效

    我有一个 MySQL 源 我从中创建一个具有谓词下推条件的 Glue 动态框架 如下所示 datasource glueContext create dynamic frame from catalog database source ca
  • Ionic - 查看从未调用的休假事件

    将现有 Ionic 项目从 1 13 beta 更新到 1 14 beta 后 我遇到了一些无法解释的行为 从一种视图状态更改为另一种视图状态时 旧视图不会离开页面 在记录 Angular ui 路由器事件和 Ionic 导航事件后 我注意
  • Django-Haystack 与 Solr 包含搜索

    我在用haystack在项目中使用solr作为后端 我希望能够执行包含搜索 类似于 Django filter something contains The startswith选项不适合我们的需求 因为顾名思义 它查找以字符串开头的单词
  • 需要一个包含至少一个数字、零个或多个字母、无空格、最小/最大的正则表达式

    我需要一个正则表达式来匹配包含以下内容的字符串 至少一个数字 零个或多个字母 没有其他字符 例如空格 该字符串还必须至少包含 8 个字符 最多包含 13 个字符 8 13 个字符串中数字和 或字母的位置并不重要 我还没有弄清楚如何确保字符串
  • 不要使用数组列表!

    人们经常告诉我不要使用 ArrayList 在 VB NET 中创建数组 我想听听对此的意见 为什么不呢 创建和操作数组内容 维度等的最佳方法是什么 Thanks 请改用通用列表 ArrayList 不是类型化的 这意味着您可以拥有一个包含
  • 在 Oracle 中插入一百万行的最快方法

    如何以最佳方式在 Oracle 中插入超过一百万行以执行以下过程 如果我将 FOR 循环增加到一百万行 它就会挂起 create or replace procedure inst prc1 as xssn number xcount nu
  • 在调试会话之间保留 app.config 中的数据

    因此 长话短说 我正在开发一个应用程序 它将利用一些可能在运行时通过应用程序本身更改的配置信息 为此 我想使用Settings class 问题在于 信息在应用程序的不同运行之间没有保留 Run 1 Console WriteLine Se