从C#中的配置文件读取键值对,以维持顺序

时间:2019-01-31 09:27:46

标签: c# type-conversion hashtable app-config

我的配置存储在app.config文件中,如下所示:

<configSections>
    <sectionGroup name="FieldMappingSettings">
      <section name="RequiredFields" type="System.Configuration.DictionarySectionHandler"/>
    </sectionGroup>
  </configSections>

  <FieldMappingSettings>
    <RequiredFields>
      <add key="ColumnName 1" value="Config Value1" />
      <add key="ColumnName 2" value="Config Value2" />
      <add key="ColumnName 3" value="Config Value3" />
      <add key="ColumnName 4" value="Config Value4" />
      <add key="ColumnName 5" value="Config Value5" />
    </RequiredFields>
  </FieldMappingSettings>

我正在使用

读取这些键值对
var requiredFields = (ConfigurationManager.GetSection("FieldMappingSettings/RequiredFields") as System.Collections.Hashtable)
             .Cast<System.Collections.DictionaryEntry>()
             .ToDictionary(n => n.Key.ToString(), n => n.Value.ToString());

我需要按相同的顺序使用此配置进行进一步处理,但是由于System.Collections.Hashtable用于投射,因此这些键值未按其配置顺序存储({ {1}}使用哈希键存储它们。

所以问题是:

由于Hashtable的返回类型为ConfigurationManager.GetSection(),我们可以将其强制转换为object而不是Dictionary<string, string>吗?

还有其他方法可以读取键值对并保持其配置顺序吗?

0 个答案:

没有答案