section read example configurationsettings app c# .net configuration app-config configurationsection

read - ¿Cómo se usan las secciones en c#4.0 app.config?



configurationsettings appsettings app config c# (2)

Quiero usar la configuración de mi aplicación para almacenar la configuración de 2 empresas, y preferiría si fuera posible utilizar una sección para separar los datos de uno del otro en lugar de darles diferentes nombres de clave.

He estado revisando en línea, pero parece que me siento un poco abrumado cuando las personas usan secciones o encuentran formas obsoletas y fáciles de usar. ¿Alguien podría pasarme una guía para principiantes sobre ellos?

A continuación se muestra un ejemplo de cómo se vería mi app.config:

<configSections> <section name="FBI" type="" /> <section name="FSCS" type="" /> </configSections> <FSCS> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FSCS> <FBI> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FBI>

Actualizar:

Solución avanzada basada en el anwer. en caso de que alguien quisiera saber.

App.config:

<configuration> <configSections> <sectionGroup name="FileCheckerConfigGroup"> <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> </configSections> <FileCheckerConfigGroup> <FSCS> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FSCS> <FBI> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FBI> </FileCheckerConfigGroup> </configuration>

Código:

// Get the application configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // Get the collection of the section groups. ConfigurationSectionGroupCollection sectionGroups = config.SectionGroups; foreach (ConfigurationSectionGroup sectionGroup in sectionGroups) { if (sectionGroup.Name == "FileCheckerConfigGroup") { foreach (ConfigurationSection configurationSection in sectionGroup.Sections) { var section = ConfigurationManager.GetSection(configurationSection.SectionInformation.SectionName) as NameValueCollection; inputDirectory = section["inputDirectory"]; //"C://testfiles"; } } }


App.config

<configSections> <sectionGroup name="FileCheckers"> <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> </sectionGroup> </configSections> <FileCheckers> <FSCS> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FSCS> <FBI> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FBI> </FileCheckers>

Ejemplo de uso

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); ConfigurationSectionGroup fileCheckersGroup = config.SectionGroups["FileCheckers"]; foreach (ConfigurationSection section in fileCheckersGroup.Sections) { NameValueCollection sectionSettings = ConfigurationManager.GetSection(section.SectionInformation.SectionName) as NameValueCollection; var value = sectionSettings["processingDirectory"] }


<configSections> <section name="FBI" type="System.Configuration.NameValueSectionHandler" /> <section name="FSCS" type="System.Configuration.NameValueSectionHandler" /> </configSections> <FSCS> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FSCS> <FBI> <add key="processingDirectory" value="C:/testfiles/ProccesFolder"/> </FBI>

Y entonces:

var section = ConfigurationManager.GetSection("FSCS") as NameValueCollection; var value = section["processingDirectory"];