📅  最后修改于: 2023-12-03 15:13:50.922000             🧑  作者: Mango
在开发过程中,有时需要在程序运行时灵活地根据不同的需求进行配置,而不是在编译时固定配置。C# 提供了多种方案来实现在运行时确定配置。
App.config
和 Web.config
文件是用来存储应用程序配置信息的 XML 文件,它们存储在应用程序根目录下,并在程序运行时被读取。这些文件可以包含应用程序的任何配置信息,如数据库连接字符串、SMTP 服务器信息、应用程序设置等。
以下是一个简单的 App.config
文件示例:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="setting1" value="value1" />
<add key="setting2" value="value2" />
</appSettings>
<connectionStrings>
<add name="MyDB" connectionString="Data Source=.;Initial Catalog=mydb;User ID=myuser;Password=mypassword" />
</connectionStrings>
</configuration>
在 C# 程序中,需要使用 System.Configuration
命名空间提供的类来读取配置信息。如下面代码读取 App.config
文件中的 setting1
配置信息:
using System.Configuration;
string setting1 = ConfigurationManager.AppSettings["setting1"];
在运行 C# 程序时,可以通过命令行传递参数,并在程序中获取这些参数。例如,下面的命令行:
prog.exe arg1 arg2 arg3
其中,prog.exe
是要运行的程序名称,arg1
、arg2
和 arg3
是参数。在 C# 程序中,可以使用 args
数组获取这些参数。例如,下面的代码读取 arg1
:
string arg1 = args[0];
环境变量是在操作系统中定义的一些变量,用于存储系统和用户的配置信息。在 C# 程序中,可以使用 System.Environment
类提供的方法读取和设置环境变量。例如,下面的代码读取名为 MY_VAR
的环境变量:
string myVar = Environment.GetEnvironmentVariable("MY_VAR");
除了使用 App.config
和 Web.config
文件外,还可以使用自定义的配置文件来存储程序配置信息。自定义配置文件可以是任何类型的文件,在其中存储程序配置信息,如 XML、JSON、INI、YAML 等。
在 C# 程序中,需要使用适当的类库来读取自定义配置文件。例如,使用 Newtonsoft.Json
类库读取 JSON 格式的配置文件:
using Newtonsoft.Json.Linq;
JObject config = JObject.Parse(File.ReadAllText("config.json"));
string setting1 = (string)config["setting1"];