read keys from example app c# app-config

keys - config file c#



subinstalaciones en el nodo de aplicaciĆ³n c# (2)

AFAIK puede implementar una sección personalizada fuera de los ajustes de la aplicación. Por ejemplo, los marcos como Autofac y SpecFlow utilizan este tipo de sesiones para admitir su propio esquema de configuración. Puede echar un vistazo a this artículo de MSDN para comprender cómo hacerlo. Espero que ayude.

Estoy usando el archivo app.config que se crea con una aplicación de consola y puedo leer el val1 de la clave1 utilizando el ConfigurationSettings.AppSettings["key1"].ToString()

<configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> <appSettings> <add key="key1" value="val1" /> <add key="key2" value="val2" /> </appSettings> </configuration>

pero tengo demasiadas claves y valores que quiero que sean categorizados.

Encontré algo que es difícil de usar en mi aplicación ya que quiero acceder a las teclas de manera similar a la anterior.

Mostrando todos los nodos y no puede leer un nodo sin obtener todos los nodos

por ejemplo lo que quiero hacer:

<appSettings> <Section1> <add key="key1" value="val1" /> </Section1> <Section2> <add key="key1" value="val1" /> <Section2> </appSettings>

y si hay una forma de acceder a él mediante ConfigurationSettings.AppSettings["Section1"].["key1"].ToString()


Puede agregar secciones personalizadas en app.config sin escribir código adicional. Todo lo que tiene que hacer es "declarar" una nueva sección en el nodo configSections como ese

<configSections> <section name="genericAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </configSections>

y luego puede definir esta sección llenándola de claves y valores:

<genericAppSettings> <add key="testkey" value="generic" /> <add key="another" value="testvalue" /> </genericAppSettings>

Para obtener el valor de una clave de esta sección, debe agregar dll System.Configuration como referencia a su proyecto, agregar using y usar el método GetSection . Ejemplo:

using System.Collections.Specialized; using System.Configuration; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { NameValueCollection test = (NameValueCollection)ConfigurationManager.GetSection("genericAppSettings"); string a = test["another"]; } } }

Lo bueno es que puedes hacer grupos de secciones fácilmente si necesitas esto:

<configSections> <sectionGroup name="customAppSettingsGroup"> <section name="genericAppSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> // another sections </sectionGroup> </configSections> <customAppSettingsGroup> <genericAppSettings> <add key="testkey" value="generic" /> <add key="another" value="testvalue" /> </genericAppSettings> // another sections </customAppSettingsGroup>

Si usa grupos, para acceder a las secciones debe acceder a ellas utilizando el formato {group name}/{section name} :

NameValueCollection test = (NameValueCollection)ConfigurationManager.GetSection("customAppSettingsGroup/genericAppSettings");