.net - usuario - La forma más simple de tener un archivo de configuración en una aplicación de Windows Forms C#
configuracion settings (11)
¿Qué versión de .Net y VS estás usando?
Cuando creó el nuevo proyecto, debe tener un archivo en su solución llamado app.config, que es el archivo de configuración predeterminado.
Soy realmente nuevo en .NET y todavía no entiendo cómo funcionan los archivos de configuración.
Cada vez que busco en Google sobre él obtengo resultados sobre web.config, pero estoy escribiendo una aplicación de formularios para Windows.
Descubrí que necesito usar el espacio de nombres System.Configuration, pero la documentación no está ayudando.
¿Cómo puedo definir que mi archivo de configuración sea XYZ.xml? ¿O tiene un nombre "predeterminado" para el archivo de configuración? Todavía no entendí eso.
Además, ¿cómo puedo definir una nueva sección, realmente necesito crear una clase que herede de ConfigurationSection?
Me gustaría simplemente tener un archivo de configuración con algunos valores como este:
<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:/Some/Path/Here</MyCustomPath>
¿Hay una manera simple de hacerlo? ¿Puede explicar de manera sencilla cómo leer y escribir desde / a un archivo de configuración simple?
A partir de una lectura rápida de las respuestas anteriores, se ven correctas, pero no parece que nadie haya mencionado las nuevas instalaciones de configuración en VS 2008. Todavía usa app.config (copiado en tiempo de compilación a YourAppName.exe.config), pero hay un widget UI para establecer propiedades y especificar sus tipos. Haga doble clic en Configuraciones en la carpeta "Propiedades" de su proyecto.
La mejor parte es que acceder a esta propiedad desde el código es seguro: el compilador detectará errores obvios como escribir mal el nombre de la propiedad. Por ejemplo, se accederá a una propiedad llamada MyConnectionString en app.config como:
string s = Properties.Settings.Default.MyConnectionString;
Aclaración de respuestas anteriores ...
1) Agregue un nuevo archivo a su proyecto (Agregar-> Nuevo elemento-> Archivo de configuración de la aplicación)
2) El nuevo archivo de configuración aparecerá en Solution Explorer como App.Config.
3) Agregue su configuración en este archivo usando lo siguiente como plantilla
<configuration>
<appSettings>
<add key="setting1" value="key"/>
</appSettings>
<connectionStrings>
<add name="prod" connectionString="YourConnectionString"/>
</connectionStrings>
</configuration>
4) Recuperarlos así:
private void Form1_Load(object sender, EventArgs e)
{
string setting = ConfigurationManager.AppSettings["setting1"];
string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
}
5) Cuando se construye, su carpeta de salida contendrá un archivo llamado <assemblyname> .exe.config. Esta será una copia del archivo App.Config. El desarrollador no debe realizar más trabajos para crear este archivo.
Debe crear un archivo App.config (muy similar a web.config)
Debe hacer clic derecho en su proyecto, agregar un nuevo elemento, nuevo "Archivo de configuración de la aplicación".
Asegúrese de agregar usando System.Configuration a 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>
private void Form1_Load(object sender, EventArgs e)
{
string setting = ConfigurationManager.AppSettings["setting1"];
string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
}
Solo una nota, según Microsoft , debería usar ConfigurationManager en lugar de ConfigurationSettings. (vea la sección de comentarios) "La clase ConfigurationSettings proporciona compatibilidad hacia atrás solamente. Para las aplicaciones nuevas, debe usar la clase ConfigurationManager o la clase WebConfigurationManager en su lugar".
Desea utilizar una App.Config.
Cuando agrega un nuevo elemento a un proyecto, hay algo llamado archivo de configuración de aplicaciones. Agrega eso.
Luego, agrega claves en la sección de configuración / ajustes de aplicaciones
Me gusta:
<configuration>
<appSettings>
<add key="MyKey" value="false"/>
Acceda a los miembros haciendo
System.Configuration.ConfigurationSettings.AppSettings["MyKey"];
Esto funciona en .net 2 y superior.
El mejor artículo (IMHO) sobre la configuración de la aplicación .NET está en CodeProject Desenmarañando los Misterios de la Configuración de .NET 2.0 . Y mi próximo artículo favorito (más corto) sobre las secciones en los archivos de configuración de .net es Entender los manejadores de sección - Archivo App.config .
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 nodo <appSettings>
.
El elemento <appSettings>
crea una colección de pares de nombre-valor a los que se puede acceder como System.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, mediante la creación de una clase que implemente IConfigurationSectionHandler
y la agregue al elemento <configSections>
del archivo de configuración. A continuación, puede acceder a él llamando a ConfigurationSettings.GetConfig
.
.NET 2.0 agrega una nueva clase, System.Configuration.ConfigurationManager
, que admite múltiples archivos, con anulaciones por usuario de los datos por sistema. También admite guardar configuraciones modificadas en archivos de configuración.
Visual Studio crea un archivo llamado App.config
, que copia en la carpeta EXE, con el nombre correcto, cuando se genera el proyecto.
En los formularios de Windows, tiene un app.config
, que es muy similar a web.config
. Pero dado que lo que veo que necesita son valores personalizados, sugiero usar la Configuración. Para hacer eso, abra las propiedades de su proyecto, luego vaya a la configuración. Si un archivo de configuración no existe, tendrá un enlace para crear uno. Luego, puede agregar las configuraciones a la tabla que ve allí, lo que generaría tanto el XML apropiado, como una clase de Configuraciones que se puede usar para cargar y guardar las configuraciones. La clase de configuración se denominará algo así como DefaultNamespace.Properties.Settings
. Entonces, puedes usar un código similar a:
using DefaultNamespace.Properties;
namespace DefaultNamespace {
class Class {
public int LoadMySettingValue() {
return Settings.Default.MySettingValue;
}
public void SaveMySettingValue(int value) {
Settings.Default.MySettingValue = value;
}
}
}
Estoy de acuerdo con las otras respuestas que te señalan 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).
System.Configuration.ConfigurationSettings.AppSettings ["MyKey"];
AppSettings ha quedado obsoleto y ahora se considera obsoleto. [ link ]
Además, la sección appSettings de la aplicación.config ha sido reemplazada por la sección applicationSettings.
Como mencionó otra persona, debe usar System.Configuration.ConfigurationManager [ link ], que es nuevo para .Net 2.0
Una forma muy simple de hacer esto es usar tu propia clase de Settings
personalizada .