我可以将应用程序密钥分组吗?
问题描述:
我正在创建一个从Sql数据库创建Lucene索引的小控制台应用程序。 此应用程序将使用单个参数运行。该参数将定义它将使用的连接字符串以及目标文件的放置位置。我可以将应用程序密钥分组吗?
我想将连接字符串和目标路径存储在app.config文件中。 是否有可能以某种方式对设置进行分组?例如,我希望如果给出参数“ABC”,使用connectionstring1并使用targetPathBanana。
这下面的例子不工作,但我想说明我的意图
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<abc>
<appSettings>
<add key="targetBasePath" value="\\Thor\lucene\abc"/>
</appSettings>
<connectionStrings>
<add name="commonString"
connectionString="Data Source=thor;Persist Security Info=True;User ID=****;Password=****"/>
</connectionStrings>
</abc>
<123>
<appSettings>
<add key="targetBasePath" value="\\Loki\temp\lucene"/>
</appSettings>
<connectionStrings>
<add name="commonString"
connectionString="Data Source=helga;Persist Security Info=True;User ID=****;Password=****"/>
</connectionStrings>
</123>
</configuration>
我知道我可以只作键遵循命名约定的名字,但我很好奇,如果这可以解决以一种不太常规的方式。
答
如果你使用这个前缀,在你的app.config文件,你应该能够创建包含<appSettings>
和<connectionStrings>
部分尽可能多的自定义栏目组,如你所愿:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="ABC">
<section name="appSettings"
type="System.Configuration.AppSettingsSection,
System.Configuration"/>
<section name="connectionStrings"
type="System.Configuration.ConnectionStringsSection,
System.Configuration"/>
</sectionGroup>
</configSections>
... put your section groups here.....
<ABC>
<appSettings>
<add key="targetBasePath" value="\\Thor\lucene\abc"/>
</appSettings>
<connectionStrings>
<add name="commonString" connectionString="..."/>
</connectionStrings>
</ABC>
</configuration>
感谢:) – 2009-06-11 09:40:08