Re: Сохранение .config файла в произвольном месте
От: ALS78  
Дата: 12.07.06 06:29
Оценка:
Доброго времени суток!

Может кому пригодится мое решение обозначенной задачи, код приблизительный, просьба не придираться...

Я руководствовался при ее решении следующими требованиями: писать настройки пользователя в user.config и использовать при этом функционал AppSettingsSection.


// открываем настройки пользователя
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
// добавляем секцию наших настроек, если ее нет.
if (config.Sections["MyUserSettings"] == null) {
    AppSettingsSection section = new AppSettingsSection();
    section.SectionInformation.AllowExeDefinition = ConfigurationAllowExeDefinition.MachineToLocalUser;
    config.Sections.Add("MyUserSettings", section);
}

// а далее можем спокойно оперировать настройками, писать, читать и т.д.
AppSettingsSection section = (AppSettingsSection)config.Sections["MyUserSettings"];
string value = section.Settings["Prop1"].Value; // если настройки нет, будет null вместо проперти вам, так что проверяйтесь


Таким образом, как видно из кода, я добавляю свою секцию типа AppSettingsSection, позволяю ей работать на уровне пользователя (по-умолчанию, уровень приложения) и тогда она у меня не будет заблокированной, как "официальная секция" config.AppSettings, и я смогу ее сохранять.

ConfigurationUserLevel.PerUserRoamingAndLocal и ConfigurationAllowExeDefinition.MachineToLocalUser можно сменить в зависимости от ваших задач на другой уровень.

Спасибо всем, кто мне ответил и сподвиг на это решение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.