gpt4 book ai didi

c# - 如何获取 NameValueSectionHandler 类型的 ConfigurationSection 的值

转载 作者:IT王子 更新时间:2023-10-29 03:44:10 25 4
gpt4 key购买 nike

我正在使用 C#、Framework 3.5 (VS 2008)。

我正在使用 ConfigurationManager 将配置(不是默认的 app.config 文件)加载到配置对象中。

使用 Configuration 类,我能够获得 ConfigurationSection,但我找不到获取该部分值的方法。

在配置中,ConfigurationSection 的类型为 System.Configuration.NameValueSectionHandler

就其值(value)而言,当我使用 ConfigurationManager 的方法 GetSection 时(仅当它位于我的默认 app.config 文件中时才有效),我收到了一个对象类型,我可以将其转换为键值对的集合,并且我刚刚收到像字典一样的值。但是,当我从 Configuration 类收到 ConfigurationSection 类时,我无法进行此类转换。

编辑:配置文件示例:

<configuration>
<configSections>
<section name="MyParams"
type="System.Configuration.NameValueSectionHandler" />
</configSections>

<MyParams>
<add key="FirstParam" value="One"/>
<add key="SecondParam" value="Two"/>
</MyParams>
</configuration>

我在 app.config 上使用它的方式示例(“GetSection”方法仅适用于默认的 app.config):

NameValueCollection myParamsCollection =
(NameValueCollection)ConfigurationManager.GetSection("MyParams");

Console.WriteLine(myParamsCollection["FirstParam"]);
Console.WriteLine(myParamsCollection["SecondParam"]);

最佳答案

遇到了确切的问题。问题是因为 .config 文件中的 NameValueSectionHandler。您应该改用 AppSettingsSection:

<configuration>

<configSections>
<section name="DEV" type="System.Configuration.AppSettingsSection" />
<section name="TEST" type="System.Configuration.AppSettingsSection" />
</configSections>

<TEST>
<add key="key" value="value1" />
</TEST>

<DEV>
<add key="key" value="value2" />
</DEV>

</configuration>

然后在 C# 代码中:

AppSettingsSection section = (AppSettingsSection)ConfigurationManager.GetSection("TEST");

顺便说一句,NameValueSectionHandler 在 2.0 中不再受支持。

关于c# - 如何获取 NameValueSectionHandler 类型的 ConfigurationSection 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com