【发布时间】:2011-06-07 22:13:40
【问题描述】:
我想使用我的应用程序配置来存储 2 家公司的设置,如果可以使用一个部分将数据与另一个分开,而不是给他们不同的键名,我会更喜欢。
我一直在网上查看,但当人们使用部分或找到过时的简单使用方法时,我似乎有点不知所措。谁能给我一份关于它们的初学者指南?
下面是我的 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>
更新:
基于答案的高级解决方案。以防有人想知道。
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>
代码:
// 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";
}
}
}
【问题讨论】:
-
您如何知道要使用哪家公司的数据?那你怎么知道你是 FBI 的用户?
-
设置好输入目录后,会有一个方法为那个公司做事。
标签: c# .net configuration app-config configurationsection