Как получить значения ConfigurationSection типа NameValueSectionHandler

Я работаю с C #, Framework 3.5 (VS 2008).

Я использую ConfigurationManager для загрузки конфигурации (не по умолчанию app.config) в объект конфигурации.

Используя класс конфигурации, я смог получить ConfigurationSection , но я не смог найти способ получить значения этого раздела.

В конфигурации ConfigurationSection имеет тип System.Configuration.NameValueSectionHandler .

Для чего стоит, когда я использовал метод GetSection из ConfigurationManager (работает только тогда, когда он был в моем файле app.config по умолчанию), я получил тип объекта, который я мог преобразовать в набор пар ключ-значение, и я только что получил значение как Словарь. Однако я не смог выполнить такое приведение, когда получил класс ConfigurationSection из класса Configuration.

РЕДАКТИРОВАТЬ: когда я использовал метод GetSection из ConfigurationManager (работает только тогда, когда он был в моем файле app.config по умолчанию), я получил тип объекта, который я мог преобразовать в коллекцию пар пары "ключ-значение", и я только что получил значение в виде словаря. Однако я не смог выполнить такое приведение, когда получил класс ConfigurationSection из класса Configuration.

РЕДАКТИРОВАТЬ: когда я использовал метод GetSection из ConfigurationManager (работает только тогда, когда он был в моем файле app.config по умолчанию), я получил тип объекта, который я мог преобразовать в коллекцию пар пары "ключ-значение", и я только что получил значение в виде словаря. Однако я не смог выполнить такое приведение, когда получил класс ConfigurationSection из класса Configuration.

РЕДАКТИРОВАТЬ: Пример файла конфигурации:

<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"]);
64
задан SteveC 19 December 2012 в 12:25
поделиться

1 ответ

Вот хороший пост, который показывает, как это сделать.

Если вы хотите прочитать значения из файла, отличного от app.config, вам необходимо загрузить его в ConfigurationManager.

Попробуйте этот метод: ConfigurationManager.OpenMappedExeConfiguration ()

В статье MSDN есть пример того, как его использовать.

17
ответ дан 24 November 2019 в 16:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: