繁体   English   中英

如何将 dbUrl、其他常量设置为 .net core 2.2 项目的环境变量,以及如何在我的 .net core 2.2 应用程序中读取这些常量?

[英]How can i set dbUrl, other constants as einvironment variable for .net core 2.2 project and how to read those contants inside my .net core 2.2 app?

我有.net core 2.2应用程序,我必须在我的项目中设置dbUrl和其他常量以使用环境变量。 我不知道我该怎么做。 我有一些问题

1) 如何将这些变量设置为.net core 2.2 项目的environment变量? 2)如何在项目运行时获取存储在environment variables中的这些值,以从.net core 2.2 environment variables初始化这些常量?

假设您已将 dbUrl 设置为系统中的环境变量,如下所示

"dbUrl":"some_connecting_string"

然后您可以像这样访问配置服务中的相同密钥

string dbUrl= Environment.GetEnvironmentVariable("dbUrl").ToString()

附加信息:了解系统的所有环境变量。

IDictionary environmentVariables = Environment.GetEnvironmentVariables();
        foreach (DictionaryEntry de in environmentVariables)
        {
            Console.WriteLine("  {0} = {1}", de.Key, de.Value);
        }

特别是在 .NET Core 中,您还有另一种通过IConfiguration对象访问环境变量的方法 - 以非静态方式而不是静态Environment类。 很高兴知道,如果您使用 defualt builder 配置 WebHost,则很可能您的系统环境变量默认已添加到此对象中。

如果不是,则在 Program.cs(或您配置主机配置的任何地方)中,向 WebHost 构建器添加以下行:

.ConfigureAppConfiguration((hostingContext, config) =>
{
    config.AddEnvironmentVariables();
})

或者,如果您显式构建 IConfiguration 对象:

IConfiguration config = new ConfigurationBuilder()
    .AddEnvironmentVariables()
    .Build();

这种方法让您只能从系统中读取环境变量,而不是设置它们。 此外,如果您想在运行时动态设置和获取这些变量的更新值,这不是最好的方法,您将不得不依赖静态Environment类。

您可以在此处阅读更多相关信息: https : //docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM