Как использовать разделы в приложении c# 4.0.конфиг?
Я хочу использовать свою конфигурацию приложения для хранения настроек для 2 компаний, и я бы предпочел, чтобы можно было использовать раздел для разделения данных для одного из другого, а не давать им разные имена ключей.
Я проверял онлайн, но я, кажется, немного перегружен, когда люди используют разделы или находят устаревшие простые способы их использования. кто-нибудь может передать мне руководство для начинающих на них?
Ниже приведен пример того, что мое приложение.конфиг будет выглядеть например:
<configSections>
<section name="FBI" type="" />
<section name="FSCS" type="" />
</configSections>
<FSCS>
<add key="processingDirectory" value="C:testfilesProccesFolder"/>
</FSCS>
<FBI>
<add key="processingDirectory" value="C:testfilesProccesFolder"/>
</FBI>
обновление:
предварительное разрешение основанное на anwer. на случай, если кто-то захочет узнать.
приложение.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:testfilesProccesFolder"/>
</FSCS>
<FBI>
<add key="processingDirectory" value="C:testfilesProccesFolder"/>
</FBI>
</FileCheckerConfigGroup>
</configuration>
код:
// 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";
}
}
}
2 ответа:
<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>
и затем:
var section = ConfigurationManager.GetSection("FSCS") as NameValueCollection; var value = section["processingDirectory"];
приложение.конфиг
<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>
Пример Использования
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"] }