📜  c# 在运行时确定配置 - C# (1)

📅  最后修改于: 2023-12-03 15:13:50.922000             🧑  作者: Mango

C# 在运行时确定配置

在开发过程中,有时需要在程序运行时灵活地根据不同的需求进行配置,而不是在编译时固定配置。C# 提供了多种方案来实现在运行时确定配置。

1. App.config/Web.config 文件

App.configWeb.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"];
2. 命令行参数

在运行 C# 程序时,可以通过命令行传递参数,并在程序中获取这些参数。例如,下面的命令行:

prog.exe arg1 arg2 arg3

其中,prog.exe 是要运行的程序名称,arg1arg2arg3 是参数。在 C# 程序中,可以使用 args 数组获取这些参数。例如,下面的代码读取 arg1

string arg1 = args[0];
3. 环境变量

环境变量是在操作系统中定义的一些变量,用于存储系统和用户的配置信息。在 C# 程序中,可以使用 System.Environment 类提供的方法读取和设置环境变量。例如,下面的代码读取名为 MY_VAR 的环境变量:

string myVar = Environment.GetEnvironmentVariable("MY_VAR");
4. 自定义配置文件

除了使用 App.configWeb.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"];