问题 配置管理器

戴夫1024

新成员
已加入
2020年11月19日
留言内容
2
编程经验
Beginner
你好,

我正在尝试读取和写入配置文件中的条目。我在使用以下方式阅读条目时没有问题:

var值= ConfigurationManager.AppSettings ["Key1"];

这将重新调用DLL.config文件的appSettings部分中的条目。

但是,我似乎无法更改它并将其写回到文件中。我使用的代码是:
var NewValue = "NewTestValue";
ConfigurationManager.AppSettings.Set("Key1", NewValue);
ConfigurationManager.RefreshSection("appSettings");

读取Key1的值&它设置正确,我尝试将其弹出在消息框中,并且它似乎已更改。当我检查配置文件或重新启动应用程序时,它将重置并且不会保存新值。

有任何想法吗?

戴夫
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,926
地点
英国
编程经验
10+
Read the 文件资料. Notice how Config.Save() is used to write out the configuration.
建议不要在.NetCore中这样做。这在.Net Web应用程序中很常见。应该移动吗?

Op希望在.NetCore中执行此操作。但是,对于.Net Web应用程序,您对Config.Save调用是正确的。 :p

我要提到的重要一点是,据我记得,.NetCore不使用此方法。 OP使用的方法是针对.Net Web应用程序而设计的。这不是为什么Microsoft移至.NetCore Skydiver中的json配置文件吗?
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
正确的。

dotNetCore中的想法是,不应更改应用程序的配置。这是因为传递给dotNetCore应用程序的配置是从appsettings.json,appsettings中读取的设置的混合物。<env>.json,环境变量和命令行参数。所有这些设置实际上只是存储在POCO中,现在已与用于填充POCO的所有源断开连接。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,926
地点
英国
编程经验
10+
由于您提供的文档适用于.Net Frameworks,并且适用于.Net Web应用程序,因此我只需要引用您的名字。

只是要确定, @ Dave1024 您可以确认正在运行哪个项目,因为所需建议的过程取决于该项目,并且还取决于您是否遵循正确的构建技术?

C#:
ConfigurationManager.AppSettings.Set("Key1", NewValue);
ConfigurationManager.RefreshSection("appSettings");
该代码只能在基于.Net的Web应用程序中使用。
 

戴夫1024

新成员
已加入
2020年11月19日
留言内容
2
编程经验
Beginner
感谢您的所有回复!

该应用程序当前是.NetCORE应用程序,尽管不是必须的。在我需要写回配置文件的基础上,我将应用程序重新编码为使用.Net 4.7.2。但是,那
Config.Save ()

出现错误,指出当前上下文中不存在配置

非常感谢
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,530
地点
弗吉尼亚州切萨皮克
编程经验
10+
阅读我链接到的文档。特别是示例代码。注意,config是一个变量,而不是一个类。
 

羊皮

退休程序员
工作人员
已加入
2018年9月5日
留言内容
1,926
地点
英国
编程经验
10+
如果您是在.NetCore而不是.Net Frameworks Web应用程序中执行此操作,则您做错了。您已经走了,避免了我在第p1 /#5号帖子中所说的
 
最佳 底部