使用自定义配置 类 读取自定义配置文件?
Read custom config file using custom config classes?
有几个 questions about reading custom config files,但其中 none 个地址使用自定义配置部分。这是我的 app.config:
的一部分
<configuration>
<configSections>
<section name="DatabaseConfigSection" type="Bootstrapper.DatabaseConfig, Bootstrapper" />
</configSections>
<DatabaseConfigSection>
<Configuration>
<Databases>
<Database name="Database_Dev" environment="Dev"/>
<Database name="Database_RC" environment="RC"/>
<Database name="Database_Cloud" environment=""/>
</Databases>
</Configuration>
</DatabaseConfigSection>
</configuration>
我有一个自定义配置 class,允许我像这样针对它进行编码:
DatabaseConfig.Instance.Configuration.Databases.Cast<Database>().Select(x => x.Name).ToArray();
我想要另一个可选的配置文件,其结构与我上面的 app.config 文件相同,我想使用我的自定义配置 class 来对抗它。例如,像这样:
ConfigurationManager.Use("otherConfigFile.config");
var new dbConfig = ConfigurationManager.GetSection(SectionSectionName) as DatabaseConfig;
dbConfig.Databases.Cast<Database>().Select(x => x.Name).ToArray();
并将 return 来自 "otherConfigFile.config" 的数据作为 DatabaseConfig
对象。但是,我找不到使 ConfigurationManager.GetSection()
指向不同文件的方法。谢谢!
这是我最后做的事情:
var map = new ExeConfigurationFileMap();
map.ExeConfigFilename = @"C:\Users\sirdank\project\bootstrapper\bin\Debug\test.config";
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
DatabaseConfig dbConfig = config.GetSection("DatabaseConfigSection") as DatabaseConfig;
在MSDN
的帮助下整理
有几个 questions about reading custom config files,但其中 none 个地址使用自定义配置部分。这是我的 app.config:
的一部分<configuration>
<configSections>
<section name="DatabaseConfigSection" type="Bootstrapper.DatabaseConfig, Bootstrapper" />
</configSections>
<DatabaseConfigSection>
<Configuration>
<Databases>
<Database name="Database_Dev" environment="Dev"/>
<Database name="Database_RC" environment="RC"/>
<Database name="Database_Cloud" environment=""/>
</Databases>
</Configuration>
</DatabaseConfigSection>
</configuration>
我有一个自定义配置 class,允许我像这样针对它进行编码:
DatabaseConfig.Instance.Configuration.Databases.Cast<Database>().Select(x => x.Name).ToArray();
我想要另一个可选的配置文件,其结构与我上面的 app.config 文件相同,我想使用我的自定义配置 class 来对抗它。例如,像这样:
ConfigurationManager.Use("otherConfigFile.config");
var new dbConfig = ConfigurationManager.GetSection(SectionSectionName) as DatabaseConfig;
dbConfig.Databases.Cast<Database>().Select(x => x.Name).ToArray();
并将 return 来自 "otherConfigFile.config" 的数据作为 DatabaseConfig
对象。但是,我找不到使 ConfigurationManager.GetSection()
指向不同文件的方法。谢谢!
这是我最后做的事情:
var map = new ExeConfigurationFileMap();
map.ExeConfigFilename = @"C:\Users\sirdank\project\bootstrapper\bin\Debug\test.config";
System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
DatabaseConfig dbConfig = config.GetSection("DatabaseConfigSection") as DatabaseConfig;
在MSDN
的帮助下整理