环境变量是操作系统中存储的动态值,可以被应用程序和系统进程使用。在C#中,我们可以通过多种方式读取、设置和管理环境变量。
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main(string[] args)
{
// 获取特定的系统环境变量
string systemPath = Environment.GetEnvironmentVariable("PATH");
Console.WriteLine("系统PATH:" + systemPath);
// 获取所有环境变量
foreach (DictionaryEntry env in Environment.GetEnvironmentVariables())
{
Console.WriteLine($"{env.Key} = {env.Value}");
}
}
}
}
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main(string[] args)
{
// 获取机器级环境变量
string machineVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine);
// 获取用户级环境变量
string userVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.User);
// 获取进程级环境变量
string processVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process);
Console.WriteLine("Machine Variable: " + machineVar);
Console.WriteLine("User Variable: " + userVar);
Console.WriteLine("Process Variable: " + processVar);
}
}
}
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main(string[] args)
{
// 设置进程级环境变量(仅对当前进程有效)
Environment.SetEnvironmentVariable("MY_APP_CONFIG", "Development");
// 读取刚设置的环境变量
string appConfig = Environment.GetEnvironmentVariable("MY_APP_CONFIG");
Console.WriteLine("应用配置:" + appConfig);
}
}
}
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main(string[] args)
{
try
{
// 设置用户级环境变量
Environment.SetEnvironmentVariable(
"DATABASE_CONNECTION",
"Server=myServerAddress;Database=myDataBase;",
EnvironmentVariableTarget.User
);
// 设置机器级环境变量(需要管理员权限)
Environment.SetEnvironmentVariable(
"GLOBAL_APP_SETTING",
"SomeGlobalValue",
EnvironmentVariableTarget.Machine
);
}
catch (Exception ex)
{
Console.WriteLine("设置环境变量失败:" + ex.Message);
}
}
}
}
由于没给管理权限,下面的机器级环境变量会出错
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main(string[] args)
{
// 从环境变量读取数据库连接字符串
string connectionString = Environment.GetEnvironmentVariable("DB_CONNECTION");
if (string.IsNullOrEmpty(connectionString))
{
// 使用默认配置
connectionString = "DefaultConnectionString";
}
Console.WriteLine("数据库连接:" + connectionString);
}
}
}
C#using System.Collections;
namespace AppEnvironment
{
internal class Program
{
static void Main()
{
// 根据环境变量选择配置
string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";
switch (environment)
{
case "Development":
Console.WriteLine("开发环境配置");
break;
case "Staging":
Console.WriteLine("预发布环境配置");
break;
case "Production":
Console.WriteLine("生产环境配置");
break;
}
}
}
}
环境变量是C#开发中非常实用的配置管理工具,合理使用可以提高应用的灵活性和安全性。
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!