Я пытаюсь сохранить пользовательские настройки в файле конфигурации с помощью 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)
Я пробовал добавить в эту конфигурацию настраиваемую секцию ConfigurationSection. Я пробовал добавить в AppSettingsSection. Всякий раз, когда я вызываю config.Save()
, он выдает исключение, указанное выше.
Любые идеи?
Я пробовал использовать класс ApplicationSettingsBase через конструктор Project-> Settings, но похоже, что с его помощью вы не можете сохранять пользовательские типы. Мне нужна аналогичная функциональность с возможностью сохранения пользовательских типов.