Soy realmente nuevo en .NET, y todavía no entendía cómo funcionan los archivos de configuración.
Cada vez que lo busco en Google, obtengo resultados sobre web.config, pero estoy escribiendo una aplicación de Windows Forms.
Descubrí que necesito usar el espacio de nombres System.Configuration, pero la documentación no está ayudando.
¿Cómo defino que mi archivo de configuración es XYZ.xml? ¿O tiene un nombre "predeterminado" para el archivo de configuración? Todavía no entendí eso.
Además, ¿cómo defino una nueva sección? ¿Realmente necesito crear una clase que herede de ConfigurationSection?
Me gustaría tener un archivo de configuración con algunos valores como este:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>
¿Existe una forma sencilla de hacerlo? ¿Puede explicar de forma sencilla cómo leer y escribir desde / hacia un archivo de configuración simple?
fuente
Respuestas:
Quiere utilizar una App.Config.
Cuando agrega un nuevo elemento a un proyecto, hay algo llamado Archivo de configuración de aplicaciones. Agregue eso.
Luego agrega claves en la sección de configuración / configuración de aplicaciones
Me gusta:
<configuration> <appSettings> <add key="MyKey" value="false"/>
Accede a los miembros haciendo
Esto funciona en .NET 2 y superior.
fuente
ConfigurationSettings
está obsoleto, useSystem.Configuration.ConfigurationManager.AppSettings["MyKey"];
.System.Configuration.ConfigurationManager
su proyecto necesita una referencia aSystem.Configuration.dll
Aclaración de respuestas anteriores ...
Agregue un nuevo archivo a su proyecto ( Agregar → Nuevo elemento → Archivo de configuración de la aplicación )
El nuevo archivo de configuración aparecerá en el Explorador de soluciones como App.Config .
Agregue su configuración a este archivo usando lo siguiente como plantilla
<configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Recupéralos así:
Cuando se construya, su carpeta de salida contendrá un archivo llamado <nombre de ensamblaje> .exe.config. Esta será una copia del archivo App.Config . El desarrollador no debe realizar ningún trabajo adicional para crear este archivo.
fuente
De una lectura rápida de las respuestas anteriores, se ven correctas, pero no parece que nadie haya mencionado las nuevas funciones de configuración en Visual Studio 2008. Todavía usa app.config (copiado en tiempo de compilación a YourAppName.exe.config), pero hay un widget de interfaz de usuario para establecer propiedades y especificar sus tipos. Haga doble clic en Settings.settings en la carpeta "Propiedades" de su proyecto.
La mejor parte es que acceder a esta propiedad desde el código es seguro para los tipos: el compilador detectará errores obvios como escribir mal el nombre de la propiedad. Por ejemplo, se accedería a una propiedad llamada MyConnectionString en app.config como:
fuente
Settings.Default.Test = "abc"; Settings.Default.Save();
Debe crear un archivo App.config (muy similar a web.config ).
Debe hacer clic derecho en su proyecto, agregar un nuevo elemento y elegir un nuevo "Archivo de configuración de la aplicación" .
Asegúrese de agregar usando System.Configuration en su proyecto.
Entonces puedes agregarle valores:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="setting1" value="key"/> </appSettings> <connectionStrings> <add name="prod" connectionString="YourConnectionString"/> </connectionStrings> </configuration>
Solo una nota: según Microsoft , debe usar ConfigurationManager en lugar de ConfigurationSettings (consulte la sección de comentarios):
fuente
El nombre predeterminado para un archivo de configuración es [yourexe] .exe.config. Entonces notepad.exe tendrá un archivo de configuración llamado notepad.exe.config, en la misma carpeta que el programa. Este es un archivo de configuración general para todos los aspectos de CLR y Framework, pero puede contener su propia configuración en un
<appSettings>
nodo.El
<appSettings>
elemento crea una colección de pares nombre-valor a los que se puede acceder comoSystem.Configuration.ConfigurationSettings.AppSettings
. Sin embargo, no hay forma de guardar los cambios en el archivo de configuración.También es posible agregar sus propios elementos personalizados a un archivo de configuración, por ejemplo, para definir una configuración estructurada, creando una clase que implemente
IConfigurationSectionHandler
y agregándola al<configSections>
elemento del archivo de configuración. A continuación, puede acceder a él llamandoConfigurationSettings.GetConfig
..NET 2.0 agrega una nueva clase,
System.Configuration.ConfigurationManager
que admite varios archivos, con anulaciones por usuario de datos por sistema. También admite guardar configuraciones modificadas en archivos de configuración.Visual Studio crea un archivo llamado
App.config
, que copia a la carpeta EXE, con el nombre correcto, cuando se crea el proyecto.fuente
El mejor artículo (en mi humilde opinión) sobre la configuración de la aplicación .NET está en CodeProject, Unraveling the Mysteries of .NET 2.0 Configuration . Y mi siguiente artículo favorito (más corto) sobre secciones en los archivos de configuración .NET es Comprensión de los controladores de sección: archivo App.config .
fuente
En Windows Forms, tiene el
app.config
archivo, que es muy similar alweb.config
archivo. Pero como veo que lo necesitas son valores personalizados, te sugiero que uses Configuración .Para hacer eso, abra las propiedades de su proyecto y luego vaya a configuración. Si no existe un archivo de configuración, tendrá un enlace para crear uno. Luego, puede agregar la configuración a la tabla que ve allí, lo que generaría tanto el XML apropiado como una clase de Configuración que se puede usar para cargar y guardar la configuración.
La clase de configuración se llamará algo así como
DefaultNamespace.Properties.Settings
. Luego, puede usar un código similar a:fuente
Estoy de acuerdo con las otras respuestas que le apuntan a app.config. Sin embargo, en lugar de leer valores directamente desde app.config, debe crear una clase de utilidad (AppSettings es el nombre que uso) para leerlos y exponerlos como propiedades. La clase AppSettings se puede usar para agregar configuraciones de varias tiendas, como los valores de app.config y la información de la versión de la aplicación del ensamblado (AssemblyVersion y AssemblyFileVersion).
fuente
Una forma muy sencilla de hacer esto es utilizar su propia
Settings
clase personalizada .fuente
Utilizar:
AppSettings ha quedado obsoleta y ahora se considera obsoleta ( enlace ).
Además, la sección appSettings de app.config ha sido reemplazada por applicationSettings sección .
Como alguien más mencionó, debería usar System.Configuration.ConfigurationManager ( enlace ), que es nuevo para .NET 2.0.
fuente
¿Qué versión de .NET y Visual Studio estás usando?
Cuando creó el nuevo proyecto, debería tener un archivo en su solución llamado app.config . Ese es el archivo de configuración predeterminado.
fuente