Я пытаюсь сохранить настройки пользователя в файле конфигурации с помощью ConfigurationManager.
Я хочу использовать эти настройки только для пользователя, поскольку изменения в приложении нельзя сохранить в Vista / Win 7 без прав администратора.
Похоже, я получил конфигурацию пользователя, которая, похоже, сохранена здесь в Win 7 ([Диск]: \ Users \ [Имя пользователя] \ AppData \ Local \ [ApplicationName] \ [AssemblyName] [hash] \ [Version] \)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
Всякий раз, когда я пытаюсь сохранить какие-либо изменения в этой конфигурации, я получаю следующее исключение:
InnerException: System.InvalidOperationException
Message="ConfigurationSection properties cannot be edited when locked."
Source="System.Configuration"
StackTrace:
at System.Configuration.SectionInformation.VerifyIsEditable()
at System.Configuration.MgmtConfigurationRecord.GetConfigDefinitionUpdates(Boolean requireUpdates, ConfigurationSaveMode saveMode, Boolean forceSaveAll, ConfigDefinitionUpdates& definitionUpdates, ArrayList& configSourceUpdates)
Я попытался добавить пользовательский раздел конфигурации в этот конфиг. Я попытался добавить в AppSettingsSection. Всякий раз, когда я звоню config.Save()
, выдается исключение выше.
Есть идеи?
Я пытался использовать класс ApplicationSettingsBase через дизайнер Project-> Settings, но не похоже, что вы можете сохранять пользовательские типы с этим. Мне нужна похожая функциональность с возможностью сохранения пользовательских типов.