簡體   English   中英

ASP.NET 核心3.1:添加框架服務:IHostEnvironment

[英]ASP.NET Core 3.1: Add framework service: IHostEnvironment

我有一個 asp.net 核心 3.1 應用程序,我試圖在我的 ConfigureServices 中注入框架服務 IHostEnvironment,這樣我就可以在我的應用程序服務中獲取環境,並且應用程序拋出錯誤。

啟動.cs:

private IHostEnvironment _env;
public Startup(IConfiguration configuration, IHostEnvironment hostEnvironment)
{
Configuration = configuration;
_env = hostEnvironment;
}

public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
//add framework services
services.AddSingleton<IHostEnvironment>(_env);

//add application services
services.AddSingleton<IMySvc, MySvc>();

}

MySvc.cs

public class MySvc : IMySvc
{
private IConfigurationRoot _config;
//private IHostingEnvironment _env;
private IHostEnvironment _env;

public string Env{
get{
if(_env.IsDevelopment()){return _config["MyConfiguration: MyProperty"];}
}
}
public HttpSvc(IConfigurationRoot config, IHostEnvironment env)
{
_config = config;
_env = env;
}

}

應用程序無法運行,抱怨某些服務無法構建。

正如從 2.2 到 3.0 的遷移指南中提到的, IWebHostEnvironment應該注入Startup class 而不是IHostingEnvironment 此外,我建議考慮將IConfiguration注入服務而不是IConfigurationRoot ,或者甚至更好地考慮將相關配置部分綁定/注冊到某些 class 並注入它(請參閱ASP.NET Core 中的配置和 ASP.NET Core 中的選項模式

暫無
暫無

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

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