回答:
簡単に言うと、app.configはXMLファイルであり、多くの定義済み構成セクションが利用可能で、カスタム構成セクションがサポートされています。「構成セクション」は、ある種の情報を格納するためのスキーマを含むXMLのスニペットです。
設定は、内蔵のような構成セクション使用して構成することができconnectionStrings
、またはappSettings
。独自のカスタム構成セクションを追加できます。これは高度なトピックですが、強く型付けされた構成ファイルを構築するのに非常に強力です。
Webアプリケーションには通常web.configがありますが、Windows GUI /サービスアプリケーションにはapp.configファイルがあります。
アプリケーションレベルの構成ファイルは、machine.configなどのグローバル構成ファイルから設定を継承します。
接続文字列には、使用できる定義済みのスキーマがあります。この小さなスニペットは実際には有効なapp.config(またはweb.config)ファイルです。
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
app.configを定義したら、ConfigurationManagerクラスを使用してコードで読み取ることができます。詳細なMSDNの例に怯えないでください。それは実際には非常に簡単です。
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
通常、*。configファイルを頻繁に変更することはお勧めできませんが、1回限りのセットアップだけを実行したいようです。
参照:実行時にconnectionStrings
* .configファイルのセクションを更新する方法を説明する、接続文字列の変更と実行時のapp.configの再読み込み。
このような構成変更は、単純なインストーラーから実行するのが理想的です。
Q:<value>
app.configの一部を手動で変更し、保存して閉じたとします。binフォルダーに移動して.exeファイルをここから起動すると、適用された変更が反映されないのはなぜですか?
A:アプリケーションをコンパイルすると、そのapp.configがexeと一致する名前でbinディレクトリ1にコピーされます。たとえば、exeの名前が「test.exe」の場合、binディレクトリに「text.exe.config」があるはずです。再コンパイルせずに構成を変更できますが、元のapp.configではなく、コンパイル時に作成された構成ファイルを編集する必要があります。
1:web.configファイルは移動されず、コンパイル時とデプロイ時に同じ場所に留まることに注意してください。これに対する1つの例外は、web.configが変換される場合です。
新しい構成オプションが.NET Coreで導入されました。* .configファイルの動作方法は変更されているようには見えませんが、開発者は新しい、より柔軟な構成パラダイムを自由に選択できます。
簡単に言うと、App.configはアプリケーションレベルの構成XML
を保持するベースのファイル形式です。
例:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="key" value="test" />
</appSettings>
</configuration>
ConfigurationManager
以下のコードスニペットに示すように使用して、設定にアクセスできます。
var value = System.Configuration.ConfigurationManager.AppSettings["key"];
// value is now "test"
注: ConfigurationSettings
は、構成情報を取得するための古いメソッドです。
var value = System.Configuration.ConfigurationSettings.AppSettings["key"];
System.Configuration.dll
上記のAPIを使用するには、参照する必要があります。
System.Configuration.ConfigurationManager.AppSettings["Key"]
すでに文字列ToString()
です。それを呼び出すのは冗長です。
私がすべての答えから欠けていたものを追加するためだけに-あなたが知っているとすぐにそれが愚かで明白であるように見えても:
ファイルは「App.config」または「app.config」という名前にする必要があり、たとえばProgram.csと同じレベルでプロジェクトに配置できます。
他の場所が可能かどうかはわかりませんが、他の名前(ODP.netドキュメントで提案されているように、application.confなど)が機能しませんでした。
PS。私はVisual Studio Codeから始めて、「dotnet new」で新しいプロジェクトを作成しました。この場合、構成ファイルは作成されません。他の場合もあると思います。PPS。.NET COREの場合、「dotnet add package System.Configuration.ConfigurationManager --version 4.5.0」のように、構成ファイルを読み取ることができるように、nugetパッケージを追加する必要がある場合があります。
/resources
ポイントをもう1つ追加するだけ
app.configを使用して、アプリケーションアクセスを制御する方法をいくつか説明します。特定の変更をアプリケーション全体のアプリ構成ファイルに適用し、以下のような設定にアクセスできます。ConfigurationSettings.AppSettings ["Key"]