由于其保护级别,ConfigurationProperty无法访问
我想在程序中读/写(并保存)应用程序的配置文件
app.config是这样的:
...
当我使用ConfigurationManager.GetSection读取app.config时,它可以工作:
var adwords_section = (System.Collections.Hashtable) System.Configuration.ConfigurationManager.GetSection("AdWordsApi"); Console.WriteLine((string)adwords_section["LogPath"]);
但是当我使用ConfigurationManager.OpenExeConfiguration时 :
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); ConfigurationSection section = config.GetSection("AdWordsApi"); Console.WriteLine(section["LogPath"]);
我总是得到这个错误:
由于其保护级别,’System.Configuration.ConfigurationElement.this [System.Configuration.ConfigurationProperty]’无法访问
但据我所知, GetSection无法在程序运行时保存配置,就像我在开头说的那样:我想在程序运行时保存配置,所以我必须使用OpenExeConfiguration 。
我已经google了很长时间,我发现使用AppSettings,但我使用的是自定义部分..
任何人都可以解释为什么会出现“ConfigurationProperty无法访问”错误? 谢谢
编辑:
我已将System和System.Configuration的 copy local设置为true
你可以使用这篇文章 。
编辑:
你可以使用配置:
这段代码:
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal); var settings = config.GetSection("AdWordsApi.appSettings") as AppSettingsSection; if (settings != null) Console.Write(settings.Settings["LogPath"].Value); Console.ReadLine();
您也可以使用这篇文章 。
string key_value = refconfig.AppSettings.Settings["key_name"].Value;
我不确定它是否适用于您尝试的操作,但您是否尝试过使用ConfigurationUserLevel.None?
上述就是C#学习教程:由于其保护级别,ConfigurationProperty无法访问分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1006378.html