【问题标题】:Writing custom sections into app.config将自定义部分写入 app.config
【发布时间】:2011-01-30 22:04:32
【问题描述】:

我想将一些自定义数据保存到应用程序配置文件中,我需要在 app.config 中创建一些自定义部分。从 app.config 读取自定义数据是一项简单的任务,但我无法将程序中的信息写入 app.config。 为了找到这个问题的解决方案,我创建了测试项目。

为了从自定义部分 app.config 读取数据,我使用了这篇文章中的信息:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

【问题讨论】:

    标签: c# .net app-config


    【解决方案1】:

    首先在您的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
    • 非常感谢!它非常简单,非常有用!
    【解决方案2】:

    您真的不应该向app.config 写任何东西,因为如果您这样做了,那么您的应用程序的使用仅限于管理员。最好将设置写入位于用户配置文件文件夹中的单独 .config 文件,例如<profiles>\<user name>\Application Data\<your product name>.

    【讨论】:

    • 谢谢。我认为应用程序的用户只需要读取和写入权限。如果我错了,请纠正我。
    • 澄清一下:app.config 文件安装在 Program Files 下的文件夹中。默认情况下,这设置为不允许标准用户进行写访问。尽管 .NET 很乐意让您通过普通的配置 API 写入任何 .config 文件,但如果您实际上尝试以标准用户身份运行它,那么您将遇到安全异常。
    • 谢谢。我会记住这一点的。我将使用 oportunity 为我的 Windows 服务而不是桌面应用程序写入 app.config。
    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 2012-10-28
    • 2015-08-11
    • 1970-01-01
    • 2011-10-02
    • 2015-07-05
    • 2011-05-25
    • 2010-09-23
    相关资源
    最近更新 更多