Estoy intentando mantener la configuración del usuario en un archivo de configuración usando ConfigurationManager.Cómo escribir en un archivo User.Config a través de ConfigurationManager?
Quiero limitar estas configuraciones solo al usuario, porque los cambios de la aplicación no se pueden guardar en Vista/Win 7 sin privilegios de administrador.
Esto parece obtener la configuración del usuario, que parece guardarse aquí en Win 7 ([Unidad]: \ Users \ [Nombre de usuario] \ AppData \ Local \ [Nombre de aplicación] \ [Nombre de conjunto] [hash] \ [ versión \)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
Siempre que trato de guardar cualquier cambio en absoluto a esta configuración me sale esta excepción:
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)
he intentado añadir un ConfigurationSection encargo a esta configuración. He intentado agregar a AppSettingsSection. Cada vez que llamo al config.Save()
arroja la excepción anterior.
¿Alguna idea?
He intentado utilizar la clase ApplicationSettingsBase a través del proyecto-> configuración del diseñador, pero no parece que pueda guardar tipos personalizados con esto. Quiero una funcionalidad similar con la capacidad de guardar tipos personalizados.
Resulta que PUEDE usar personalizado para tipos con el proyecto-> Diseñador de configuración. No los incluyen en el cuadro de diálogo de tipo, pero si escribe el nombre/espacio de nombre correcto, puede usar cualquier tipo que desee. El tipo debe ser XmlSerializable o convertible a/desde cadena con un TypeConverter. –