C# 中的 App.Config

Fil Zjazel Romaeus Villegas 2023年1月30日 2022年4月20日
  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