![](/img/trans.png)
[英]How do I get intellisense in app.config for a custom section?
[英]How do I get a section from my winform app.config?
我已经在这里查看了答案,但是我的问题似乎与其他人报告的Null返回值有所不同。
我正在尝试从app.config中抓取一部分,以便可以对每个名称/值对进行一些处理。 由于投放问题,我似乎无法从ConfigurationManager找回联系。
使用C#和.NET 4.5,我一直在尝试对该主题进行各种更改:
AppSettingsSection sec =
(AppSettingsSection)ConfigurationManager.GetSection("appSettings");
我首先尝试将这些值拉回泛型,然后使用预期的转换错误来定义传入集合的类型。 但是,我尝试使用的每种类型都会收到相同的错误,无法将abc
类型转换为abc
(相同类型)。
显然问题出在椅子和键盘之间,但Google没有帮助。 有任何想法吗?
这是app.config的片段
<add key="TemplatePath" value="c:\temp\templates\"/>
<add key="deployDateToken" value="[deployDate]"/>
<add key="NavigateToFolderToken" value="[NavigateToFolder]"/>
<add key="contactToken" value="[ContactInfo]"/>
您可以这样说:
public static IEnumerable<KeyValuePair<string,string>> EnumerateAppSettings()
{
return ConfigurationManager
.AppSettings
.Cast<string>()
.Select( key => new KeyValuePair<string,string>( key , ConfigurationManager.AppSettings[key] ) )
;
}
...
foreach ( KeyValuePair<string,string> item in EnumerateAppSettings() )
{
// do something
}
甚至
Dictionary<string,string> appSettings = ConfigurationManager
.AppSettings
.Cast<string>()
.ToDictionary( key => key , key => ConfigurationManager.AppSettings[key] )
;
或者...最简单的:
NameValueCollection appSettings = ConfigurationManager.AppSettings ;
如果要获取实际的AppSettingsSection
,则需要查看以下问题的答案: 如何将Web.config appSettings作为ConfigurationSection而不是NameValueCollection 。
那下面的东西呢
var appSettings = ConfigurationManager.AppSettings;
foreach (var key in appSettings.AllKeys)
{
appSettings[key]//do something
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.