簡體   English   中英

如何在靜態輔助方法中獲取 ASP.NET Core 環境?

[英]How can I get the ASP.NET Core environment in a static helper method?

我不能使用依賴注入,我的 ASP.NET Core 項目中有帶有靜態方法的靜態幫助器類。 確定應用程序正在開發環境中運行的最簡單方法是什么?

相當於:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment()) // -> this env is what I'm looking for
    {
        app.UseDeveloperExceptionPage();
        app.UseMigrationsEndPoint();
    }
    ...
}

如何在沒有 DI 的情況下手動獲取env

考慮到啟動是在 ASP.NET Core 應用程序上運行的第一件事(在主 Program 類中構建主機之后),有非常簡單的解決方案可用:

public class Startup 
{
    public static IWebHostEnvironment Environment { get; }

    public Startup(IWebHostEnvironment environment)
    {
        Environment = environment;
    }
}

但是請注意,正確的解決方案是不要將依賴注入與靜態類混合使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM