Я работаю с 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"]);
Вот хороший пост, который показывает, как это сделать.
Если вы хотите прочитать значения из файла, отличного от app.config, вам необходимо загрузить его в ConfigurationManager.
Попробуйте этот метод: ConfigurationManager.OpenMappedExeConfiguration ()
В статье MSDN есть пример того, как его использовать.