繁体   English   中英

如何在 ASP.NET CORE 2.1 中的 Program.cs 文件中检查代码是在开发模式还是生产模式下运行?

[英]How to check whether the code is running in development or Production mode in Program.cs file in ASP.NET CORE 2.1?

我有一个在 ASP.NET CORE 2.1 中开发的 Web 应用程序。 我希望代码在开发和生产模式下表现不同。 我试过#if Debug else code 但这不符合我的要求。

谁能建议我如何在 Program.cs 文件中的 C# 中找到当前模式?

IWebHostEnvironment接口提供了IsDevelopment()方法。 只需将其注入到您尝试从中使用它的任何类中即可。

public class MyClass
{    
    public MyClass(IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            // Run development specific code
        }
    }
}

如果您确实需要从 DI 容器/范围之外访问它,那么理论上您可以读取ASPNETCORE_ENVIRONMENT环境变量的值。 请注意,这是一个实现细节,通过这种方式访问​​它可以绕过框架。

var isDevelopment = string.Equals(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"), "development", StringComparison.InvariantCultureIgnoreCase);

暂无
暂无

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

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