C# 中的 App.Config

Fil Zjazel Romaeus Villegas 2023年10月12日
  1. C# 中將連線字串新增到 App.config
  2. C# 中將應用程式設定新增到 App.config
  3. 完整的 C# App.Config 示例
C# 中的 App.Config

本教程將解釋 C# 專案中的 App.Config 檔案並演示如何使用它。

App.Config 或 Application Level Configurations 檔案是一個基於 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 進行哪些修改的典型示例是儲存 connectionStringsappSettings 以在整個專案中訪問。

按照你想要的方式設定 App.Config 檔案後,你可以通過 ConfigurationManager 呼叫其儲存的值。要使用 ConfigurationManager,你必須為 System.Configuration 新增 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