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
进行哪些修改的典型示例是存储 connectionStrings
或 appSettings
以在整个项目中访问。
按照你想要的方式设置 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