1. ホーム
  2. .net

[解決済み] AppSettingsとapplicationSettingsの長所と短所(.NET app.config / Web.config)

2022-04-22 18:16:49

質問

.NET Windows Formsアプリケーションを開発する場合、次のいずれかを選択する必要があります。 App.config タグを使用して、設定値を保存します。どちらが良いのでしょうか?

<configuration>

  <!-- Choice 1 -->
  <appSettings>
    <add key="RequestTimeoutInMilliseconds" value="10000"/>
  </appSettings>

  <!-- Choice 2 -->
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" >
        <section name="Project1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5612342342" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <Project1.Properties.Settings>
      <setting name="TABLEA" serializeAs="String">
        <value>TABLEA</value>
      </setting>
    </Project1.Properties.Settings>
  </applicationSettings>

</configuration>

解決方法は?

基本的な <appSettings> を使えば簡単に処理できます。 <add key="...." value="..." /> を入力すれば完了です。

欠点は、型チェックがないことです。例えば、設定したい数値が本当に数値であると安全に仮定することはできません - 誰かがその設定に文字列を入れるかもしれません...。 ConfigurationManager["(key)"] で、何を扱っているかはあなた次第です。

また、時間が経つと <appSettings> は、アプリの多くの部分がそこにものを置き始めると、かなり複雑で面倒なことになります (古い windows.ini ファイルを覚えていますか :-))。

できれば、独自の設定セクションを使うことをお勧めします。.NET 2.0では、本当に簡単になりました。 そうすれば、できます。

  • a) コンフィギュレーション設定をコードで定義し、それをタイプセーフにする。 とチェックされます。
  • b) あなたの を設定することができます。 のものです。そして、コンフィグコードも再利用できるのです

CodeProjectに、.NET 2.0の設定システムを解明するための非常に良い記事があります。

  1. .NET 2.0設定の謎を解き明かす

  2. .NET 2.0構成の謎を解く

  3. .NET 2.0設定の謎を解く

お薦めです Jon Ristaは、.NET 2.0の構成システムを見事に説明してくれました。