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

1 に答える 1

5

<appSettings>app.config ファイルでこのプレフィックスを使用すると、と<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-11T09:31:59.287 に答える