2009-06-11 66 views
3

我正在创建一个从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> 

我知道我可以只作键遵循命名约定的名字,但我很好奇,如果这可以解决以一种不太常规的方式。

回答

4

如果你使用这个前缀,在你的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> 
+0

感谢:) – 2009-06-11 09:40:08

相关问题