[解決済み] 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の設定システムを解明するための非常に良い記事があります。
お薦めです Jon Ristaは、.NET 2.0の構成システムを見事に説明してくれました。
関連
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] AssemblyInfo.csは何に使うのですか?
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] .NETでapp.configやweb.configから設定を読み込む
-
[解決済み] 埋め込みリソーステキストファイルの読み方
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?
-
[解決済み] アセンブリ 'netstandard, Version=2.0.0.0' への参照を追加する必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] Marginのプロパティ順
-
[解決済み] フレームワークとアーキテクチャの違いは何ですか?[クローズド]
-
[解決済み] VB.NETで線を引く方法
-
[解決済み] AndroidでWCFサービスを利用する方法
-
[解決済み] 到達不能なホストに対してソケット操作を行おうとした
-
[解決済み] DelphiとDelphi.NETの違いについて
-
[解決済み] .NETでapp.configやweb.configから設定を読み込む
-
[解決済み] Windowsフォームアプリケーションで、アプリケーションの設定を保存するにはどうすればよいですか?
-
[解決済み] HashSetとListの性能比較