【发布时间】:2011-01-30 22:04:32
【问题描述】:
我想将一些自定义数据保存到应用程序配置文件中,我需要在 app.config 中创建一些自定义部分。从 app.config 读取自定义数据是一项简单的任务,但我无法将程序中的信息写入 app.config。 为了找到这个问题的解决方案,我创建了测试项目。
为了从自定义部分 app.config 读取数据,我使用了这篇文章中的信息:
【问题讨论】:
标签: c# .net app-config
我想将一些自定义数据保存到应用程序配置文件中,我需要在 app.config 中创建一些自定义部分。从 app.config 读取自定义数据是一项简单的任务,但我无法将程序中的信息写入 app.config。 为了找到这个问题的解决方案,我创建了测试项目。
为了从自定义部分 app.config 读取数据,我使用了这篇文章中的信息:
【问题讨论】:
标签: c# .net app-config
首先在您的CustomConfigSection 中覆盖IsReadyOnly() 以返回false。
一旦你完成了,你应该能够做这样的事情(这是针对 ASP.NET,但它可能是可转移的):
System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~");
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom");
config.Tweak = 1;
config.Change = "foo";
configFile.Save();
试试看。
【讨论】:
IsReadOnly() 以返回false?
您真的不应该向app.config 写任何东西,因为如果您这样做了,那么您的应用程序的使用仅限于管理员。最好将设置写入位于用户配置文件文件夹中的单独 .config 文件,例如<profiles>\<user name>\Application Data\<your product name>.
【讨论】:
app.config 文件安装在 Program Files 下的文件夹中。默认情况下,这设置为不允许标准用户进行写访问。尽管 .NET 很乐意让您通过普通的配置 API 写入任何 .config 文件,但如果您实际上尝试以标准用户身份运行它,那么您将遇到安全异常。