設定(.settingsのセットとConfiguration.AppSettings
の両方)は.configファイルに保存されます。
違いは、.NET 2.0/VS2005で追加された.settingsものは、一緒に属している設定のセットの上に強く型付けされたクラスをレイヤーするのに対し、Configuration.AppSettings
では、どのコンバージョンも、デフォルトの概念を持っていません。 (これを反映するためにConfigurationクラスはサイドアセンブリに実際にシャントされています。必要なら、System.Configurationへの参照を明示的に追加する必要があります)。
プロジェクトに.settingsを追加すると、既に設定がない場合に設定を格納するapp.configが追加されます。設定を読み込むクラスは、コンポーネント/アプリケーションの設定リストを変更するたびに自動的に生成されます。
設定のその他の機能は、ユーザー固有の設定を指定する機能です(1回の呼び出しでユーザー固有の設定を保存することもできます)。
設定を使用する最も良い理由は、一般に、プロパティの使用法に従うことでコードベースのどの設定を使用しているかを明確に識別できることです(各セットはXMLファイル内の別のブロックです) 。 Configuration.appSettings
は、それが本質的にグローバルである - それはプロパティの単なるバッグであり、特定の設定エントリに依存するDLL、サブシステム、またはクラスを知りません。詳しくはthis blog post from Steven Smithを参照してください。
最後に、まだ設定管理について十分に読んでいない場合、アイデアやアングルの完全性や完全性については、this Rick Strahl post on the subjectを打つことはありません。
ASIDE:ASP.NET vNext Configurationのものもあります。outlined in this articleは非常に柔軟性があり、構成設定の管理にはさまざまな角度があります。
お返事ありがとうございます。ちょうど1つの点についてちょっと混乱しました:2種類の設定があります。1つはアプリの設定、もう1つはユーザーの設定です。両方のタイプの設定が設定ファイルに保存されている場合、ユーザごとにユーザ設定はどのように異なりますか? – Hemant
申し訳ありませんが、その言及を省略します。ユーザー設定は、デフォルトが存在する理由の1つです(ユーザーがまだアプリを使用していない場合は、変更が保存されるまでデフォルトが適用されます)。ユーザー設定は、ユーザーのプロファイル(Users \ XXX)ディレクトリ内の別の構成ファイルに格納されます。ユーザー設定も更新することができます(システムAPIはデフォルトのAPIを使用することはできません。これらはProgram Filesには存在しません)。 –
この場合、構成マネージャはどこに適合しますか?私の設定がどこに住んでいるのかを教えてもらうことができませんでした。 –