ConfigurationProperty est inaccessible en raison de son niveau de protection

Je veux de lecture/écriture (et enregistrer) application, le fichier de configuration dans le programme de

L'application.la config est comme ceci:

<configuration>
  <configSections>
    <section name="AdWordsApi" type="System.Configuration.DictionarySectionHandler" requirePermission="false"/>
  </configSections>
  <AdWordsApi>
    <add key="LogPath" value=".\Logs\"/>
    ...
  </AdWordsApi>
</configuration>

Lorsque j'utilise ConfigurationManager.GetSection à lire l'app.config, ça fonctionne:

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

Mais quand j'utilise ConfigurationManager.OpenExeConfiguration:

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

J'ai toujours cette erreur:

'Système.La Configuration.ConfigurationElement.ce[Système.La Configuration.ConfigurationProperty]'
est inaccessible en raison de son niveau de protection

Mais comme je sais, GetSection ne peut pas enregistrer la configuration au programme de l'exécution, Comme je l'ai dit au début: je veux enregistrer la configuration au programme d'exécution, Donc je dois utiliser OpenExeConfiguration.

J'ai googlé pour longtemps, ce que j'ai trouvé est d'utiliser AppSettings, mais ce que j'utilise est de coutume de la section..

Quelqu'un pourrait expliquer pourquoi cette "ConfigurationProperty inaccessible" une erreur est survenue? Grâce

Edit:

J'ai mis copie locale de Système et Système.Configuration à vrai

source d'informationauteur Mark Ma