2010-03-23 13 views
10

Quiero guardar algunos datos personalizados en el archivo de configuración de la aplicación y necesito crear algunas secciones personalizadas en app.config. Leer datos personalizados desde app.config es una tarea simple, pero no puedo escribir información de mi programa en app.config. Para encontrar una solución a este problema, creo un proyecto de prueba.Escribir secciones personalizadas en app.config

para leer datos de sección personalizada app.config que utilizó la información de este artículo:

http://devlicio.us/blogs/derik_whittaker/archive/2006/11/13/app-config-and-custom-configuration-sections.aspx

Respuesta

4

Primera anulación IsReadyOnly() en su CustomConfigSection para volver falsa.

Una vez que hayas hecho esto usted debe ser capaz de hacer algo como esto (esto es para ASP.NET, pero podría ser transferably):

System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~"); 
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom"); 
config.Tweak = 1; 
config.Change = "foo"; 
configFile.Save(); 

Inténtelo.

+2

¿Quiere decir invalidar 'IsReadOnly()' para devolver 'false'? – FrustratedWithFormsDesigner

+0

Sí. Soy un Wally. Editado – Pike65

+0

¡Muchas gracias! ¡Es muy simple y muy útil! –

5

Realmente no debe escribir nada en app.config, porque si lo hace, entonces está limitando el uso de su aplicación solo a los Administradores. Es mejor práctica escribir configuraciones en un archivo separado .config ubicado en una carpeta de perfil de usuario, p. <profiles>\<user name>\Application Data\<your product name>.

+0

Gracias. Creo que el usuario de la aplicación solo necesita permisos de lectura y escritura. Si estoy equivocado, por favor corrígeme. –

+1

Para aclarar: el archivo 'app.config' está instalado en una carpeta debajo de Archivos de programa. De manera predeterminada, está configurado para no permitir el acceso de escritura a los usuarios estándar. Aunque .NET con gusto le permitirá escribir en cualquier archivo '.config' a través de la API de configuración normal, si realmente intenta ejecutarlo como un usuario estándar, entonces obtendrá una excepción de seguridad. –

+0

Gracias. Recordaré esto. Utilizaré la oportunidad para escribir en app.config para mis servicios de Windows, no para aplicaciones de escritorio. –

Cuestiones relacionadas