C# の App.Config
このチュートリアルでは、C# プロジェクトの App.Config
ファイルについて説明し、その使用方法を示します。
App.Config
、またはアプリケーションレベルの構成ファイルは、使用可能な事前定義された構成セクションを含む XML ベースのファイルであり、変更可能なカスタム構成セクションを使用できます。多くの場合、新しいプロジェクトを作成するときに自動的に生成されます。
非常に基本的な App.Config
は次のようになります。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
ご覧のとおり、実行時にサポートされる.NET のバージョンのみを指定します。ここから、アプリケーションがアセンブリファイルを見つけてロードする方法をカスタマイズできます。App.Config
に加えられる変更の典型的な例は、プロジェクト全体でアクセスできる connectionStrings
または appSettings
を保存することです。
App.Config
ファイルを希望どおりに設定した後、ConfigurationManager
を介して保存された値を呼び出すことができます。ConfigurationManager
を使用するには、System の using ステートメントを追加する必要があります。構成
をコードに追加します。
C# の App.config
への接続文字列の追加
接続文字列を追加するには、connectionStrings
のセクションが存在することを確認する必要があります。次に、その中に、使用する接続文字列とプロバイダー名を追加できます。プロバイダー名の値は、接続文字列に対応する名前空間である必要があります。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="myConnectionString"
connectionString="Data Source =MSI\SQLEXPRESS; Initial Catalog =SampleDB; Integrated Security=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
</configuration>
コード内のこの接続文字列にアクセスするには、ConfigurationManager
を使用して、ConnectionStrings
コレクション全体にアクセスできます。そこから、目的の接続文字列をその名前でプルできます。
string connectionString =
ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
C# の App.config
へのアプリ設定の追加
アプリ設定構成を追加するには、appSettings
セクションが存在することを確認する必要があります。次に、その中に、呼び出されるキーとその値を指定して、新しいアプリ設定を追加できます。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="TableName" value="SampleTable" />
</appSettings>
</configuration>
この構成にアクセスするには、ConfigurationManager
を使用し、以下の構文を使用して AppSettings
コレクション全体にアクセスできます。
var tableName = ConfigurationSettings.AppSettings["TableName"];
C# の App.Config
の例
App.Config
ファイルの概念のいくつかについて説明したので、それらを組み合わせて例を示します。
XML:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<connectionStrings>
<add name="myConnectionString"
connectionString="Data Source =MSI\SQLEXPRESS; Initial Catalog =SampleDB; Integrated Security=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
<appSettings>
<add key="TableName" value="SampleTable" />
</appSettings>
</configuration>
App.Config
ファイルに、単一の接続文字列と TableName
という名前の構成を保存しました。それらの異なるセクションとそれらの異なる構文に注意してください。
C#:
using System;
using System.Configuration;
namespace AppConfig_Example {
class Program {
static void Main(string[] args) {
// Pull the connection string from the App.Config File
string connectionString =
ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
// Pull the app setting from the App.Config File
var tableName = ConfigurationSettings.AppSettings["TableName"];
// Print the values to the console
Console.WriteLine("Configuration String: " + connectionString + "\n");
Console.WriteLine("Table Name: " + tableName);
Console.ReadLine();
}
}
}
ConfigurationManager
を使用して、プログラムコードの App.Config
ファイルに保存されている値を取得しました。それらが正しく保存およびプルされたことを示すために、それらの値がコンソールに出力されます。
出力:
Configuration String: Data Source =MSI\SQLEXPRESS; Initial Catalog =SampleDB; Integrated Security=True
Table Name: SampleTable