Поддерживает ли Monodevelop файлы конфигурации?

Я добавил файл app.config в моно-проект С#.

Внутри проекта я использовал

foreach (string key in ConfigurationManager.AppSettings)
{
string value = ConfigurationManager.AppSettings[key];
Console.WriteLine("Key: {0}, Value: {1}", key, value);
}

Файл конфигурации выглядит следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Key1" value="Kevin" />
<add key="Key2" value="150" />
<add key="Key3" value="Rice" />
</appSettings>
</configuration>

Ключи не обнаружены. Как я могу прочитать значения конфигурации?

Ответ 1

Этот ответ приходит ужасно поздно, но для любого, кто сталкивается с этим, да, mono поддерживает файлы конфигурации. Вы можете использовать описанный выше метод ConfigurationManager, или вы даже можете создать свой собственный раздел настроек в файле app.config и управлять им через класс, который происходит из ApplicationSettingsBase. На мой взгляд, это гораздо более естественный способ обработки файла app.config, поскольку вы работаете с классом и строго типизированными свойствами, вместо того, чтобы обращаться к строкам из массива с тем, как это делает ConfigurationManager. Создание класса для настроек приложения довольно просто. Здесь на странице MSDN объясняется, как создать класс: http://msdn.microsoft.com/en-us/library/system.configuration.applicationsettingsbase.aspx

Единственное предостережение, которое следует учитывать в Mono, заключается в том, что .NET Framework позволяет определять UserScopedSettings в файле app.config(чтобы предоставить значение по умолчанию), но Mono будет генерировать исключения, если вы это сделаете. Обходной путь для этого - оставить UserScopedSettings из файла app.config и просто определить значение по умолчанию для свойства в коде. Это не идеальное решение, поскольку оно не дает возможности изменить значение по умолчанию вне кода, но этого будет достаточно в большинстве случаев.