o..*_*..o 8 .net asp.net .net-6.0
在我的 .NET Core 3.1 WebApi 项目中,我首先读取环境变量并根据它加载 appsettings.json :
public static IHostBuilder CreateHostBuilder(string[] args)
{
string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
...
}
Run Code Online (Sandbox Code Playgroud)
但我没有找到如何在.NET 6中读取它:
var builder = WebApplication.CreateBuilder(args);
build.Environment 无法读取它。
有谁知道?
谢谢
小智 13
我想稍微扩展一下已接受的答案,因为它只引用了一个链接。
还可以将环境变量读入强类型配置类。
即,看看这个类:
public class MyConfig
{
public string ValueA { get; set; }
public int ValueB { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们还假设环境变量设置为MySection__ValueA和MySection__ValueB。
如果您将配置类注册为:
services.Configure<MyConfig>("MySection");
Run Code Online (Sandbox Code Playgroud)
然后您将能够访问代码中的配置值,如下所示:
public class SomeService
{
public SomeService(IOptions<MyConfig> config)
{
// Here config.Value.ValueA is equal to MySection__ValueA
// and config.Value.ValueB is equal to MySection__ValueB (automatically converted to int)
}
Run Code Online (Sandbox Code Playgroud)
小智 6
官方文档说 System 命名空间中的方法应该可以工作:
https://learn.microsoft.com/en-us/dotnet/api/system.environment.getenvironmentvariable?view=net-6.0
| 归档时间: |
|
| 查看次数: |
40478 次 |
| 最近记录: |