相关疑难解决方法(0)

由于其保护级别,ConfigurationProperty无法访问

我想在程序中读/写(并保存)应用程序的配置文件

app.config是这样的:

<configuration>
  <configSections>
    <section name="AdWordsApi" type="System.Configuration.DictionarySectionHandler" requirePermission="false"/>
  </configSections>
  <AdWordsApi>
    <add key="LogPath" value=".\Logs\"/>
    ...
  </AdWordsApi>
</configuration>
Run Code Online (Sandbox Code Playgroud)

当我使用ConfigurationManager.GetSection读取app.config时,它可以工作:

var adwords_section = (System.Collections.Hashtable) System.Configuration.ConfigurationManager.GetSection("AdWordsApi");
Console.WriteLine((string)adwords_section["LogPath"]);
Run Code Online (Sandbox Code Playgroud)

但是当我使用ConfigurationManager.OpenExeConfiguration时:

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
ConfigurationSection section = config.GetSection("AdWordsApi");
Console.WriteLine(section["LogPath"]);
Run Code Online (Sandbox Code Playgroud)

我总是得到这个错误:

由于其保护级别,'System.Configuration.ConfigurationElement.this [System.Configuration.ConfigurationProperty]'无法访问

但据我所知,GetSection无法在程序运行时保存配置,就像我在开头说的那样:我想在程序运行时保存配置,所以我必须使用OpenExeConfiguration.

我已经google了很长时间,我发现使用AppSettings,但我使用的是自定义部分..

任何人都可以解释为什么会出现"ConfigurationProperty无法访问"错误?谢谢

编辑:

我已复制本地系统System.Configuration

.net c# configurationmanager app-config configurationsection

10
推荐指数
2
解决办法
3万
查看次数