¿Cómo escribir en un archivo User.Config a través de ConfigurationManager?

Estoy tratando de mantener la configuración del usuario en un archivo de configuración usando ConfigurationManager.

Quiero establecer esta configuración solo para el 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 estar guardada aquí en Win 7 ([Drive]: \ Users \ [Username] \ AppData \ Local \ [ApplicationName] \ [AssemblyName] [hash] \ [Version \)

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);

Cada vez que intento guardar algún cambio en esta configuración, obtengo 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 agregar una sección de configuración personalizada a esta configuración. He intentado agregar a la sección AppSettingsSection. Cada vez que llamoconfig.Save() arroja la excepción anterior.

¿Algunas ideas?

Intenté usar la clase ApplicationSettingsBase a través del diseñador de Proyecto-> Configuración, pero no parece que pueda guardar tipos personalizados con esto. Quiero una funcionalidad similar con la capacidad de guardar tipos personalizados.

Respuestas a la pregunta(1)

Su respuesta a la pregunta