2009-06-11 27 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

相關問題