Чтение пар ключ-значение, сохраняющих порядок из файла конфигурации в c # - PullRequest
0 голосов
/ 31 января 2019

У меня есть конфигурации, сохраненные в файле 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 используется для приведения, эти значения ключей не сохраняются в порядке их настройки (Hashtable сохраняет их с использованием хэш-ключей).

Итак, вопрос:

Поскольку тип возвращаемого значения ConfigurationManager.GetSection() равен object, можем ли мы привести его к Dictionary<string, string> вместо Hashtable?

или

Есть ли другой способ прочитать пары ключ-значение, сохраняя порядок, в котором они настроены?

...