73

私は実際には.NET関連のものの学習段階にあり、アプリケーションを保存する方法を模索していました. 設定を XML ファイルに保存する独自のクラスを作成したところ、.NET 自体がアプリケーション設定の保存をサポートしていることがわかりました。

しかし、私はそれを行う2つの方法を見つけました。Visual Studio 2008 で新しい項目の追加ダイアログを開くと、設定ファイル (.settings) または構成ファイル (.config) を作成するオプションが表示されます。両方の違いと、どのシナリオで使用する必要がありますか?

4

3 に答える 3

56

更新: ASP.NET Core Land では、構成はこれらのいずれかを介して管理されなくなりました - az をオンした Travis Illig からのこの素晴らしい記事を参照してください。これは事実上、これらすべてのスーパーセットです。Microsoft.Extension.ConfigurationMicrosoft.Extensions.Configuration.Binder


設定 (.settings セットと の両方Configuration.AppSettings) は、.config ファイルに [他の多くのものと共に] 保存されます。

違いは、[.NET 2.0 / VS2005 で追加された] .settings のものは、一緒に属する設定のセットの上に強く型付けされたクラスをレイヤー化するのに対し、Configuration.AppSettings文字列を取得できるようにするだけで、変換を強制し、変換を行わないことです。デフォルトの概念があります。(Configuration クラスは実際には、これを反映するためにサイド アセンブリに入れられています。必要な場合は、System.Configuration への参照を明示的に追加する必要があります)。

プロジェクトに .settings を追加すると、設定を格納するために app.config が追加されます (まだ持っていない場合)。コンポーネント/アプリケーションの設定リストを変更するたびに、設定を読み取るクラスが自動的に生成されます。

.Settings のその他の機能は、一部の設定をユーザー固有として指定する機能です (また、1 回の呼び出しでユーザー固有の設定を保存することもできます)。

.Settings を使用する最も良い理由は、一般に、プロパティの使用法に従うことで、コード ベースで誰がどの設定を使用しているかを明確に識別できるようになるためです (各セットは XML ファイル内の個別のブロックです)。Configuration.appSettingsその性質上、よりグローバルです。これは単なるプロパティのバッグであり、どの DLL、サブシステム、またはクラスが特定の設定エントリに依存しているかわかりません。詳細については、Steven Smith のこのブログ投稿を参照してください。

最後に、設定管理についてまだ十分に読んでいない場合は、このテーマに関する Rick Strahl の記事の完全性や膨大な量のアイデアや角度に勝るものはありません。

補足: ASP.NET vNext 構成もあり、この記事で概説されていますが、これは非常に柔軟で、構成設定の管理に異なる角度を提供します。

于 2009-05-26T09:05:40.357 に答える
5

設定ファイルは、さまざまな設定とそのデフォルト値を指定するリソース ファイルです。

値自体は、アプリケーション構成ファイル (.config ファイル) で構成されます。

設定ファイルはデプロイされないため、構成を行うには構成ファイルが必要になります。

于 2009-05-26T09:07:13.333 に答える
0

app.config ファイルは、アプリと同じディレクトリに保存されます。通常のユーザーには、書き込み権限がありません (「Program Files」など)。

設定ファイルは、ユーザーの「AppData」ディレクトリに保存する必要があります(ユーザーは読み取り/書き込み権限を持っています)。

そのため、ユーザーが構成可能なオプションには設定ファイルを使用してください。

于 2010-09-01T08:04:32.643 に答える