c# - .NET 获取自定义配置部分作为 NameValueCollection

标签 c# .net web-config app-config config

在我的 web.config 中,我将配置部分分解为单独的文件:

<appSettings configSource="AppSettings.config" />
<mySettings configSource="MySettings.config" />

然后我使用 ConfigurationManager 检索设置:

NameValueCollection appSettings = System.Configuration.ConfigurationManager.AppSettings;

NameValueCollection 很方便,因为我可以这样做:

var someSetting = appSettings["someSetting"];

我想对自定义配置部分执行相同的操作,但我不知道如何获取 NameValueCollection:

Configuration configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
ConfigurationSection section = configuration.GetSection("mySettings"); 
KeyValueConfigurationCollection mySettings = ((AppSettingsSection)section).Settings;

KeyValueConfigurationCollection 也适用于检索个人设置:

var mySetting = mySettings["mySetting"].Value

但我想将所有配置部分表示为相同类型,以便移交给通用处理例程。

如何获取自定义配置部分的 NameValueCollection?

最佳答案

我通常这样做

NameValueCollection customSection 
 = (NameValueCollection)ConfigurationManager.GetSection("NAMEOFSECTION");

然后使用

customSection["key"] 检索值

请注意,如果该部分不可用,它将返回 null

关于c# - .NET 获取自定义配置部分作为 NameValueCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20108877/

相关文章:

c# - 是否有内置方法来访问项目的 csproj 文件数据?

c# - Visual Studio 2010 认为它处于 Debug模式(但它设置为 Release模式)

c# - 文件共享未按预期工作

linux - 登录 CLearOS webconfig 失败

web-config - 在 Web.config 中加密邮件设置

iis-7 - ASP.NET 3.5 IIS7 角色安全实现

c# - 读取 TcpClient 实例上的 Connected 属性时出现异常

c# - 如何从控制台进程中只捕获一行?

c# - 需要帮助来决定什么是跟踪系统 (.NET) 的最佳解决方案

.net - 获取附加到 Windows Server 2019 的磁盘序列号