【问题标题】:How to access IHostingEnvironment, ContentRoot inside Program.cs Main method?如何在 Program.cs Main 方法中访问 IHostingEnvironment、ContentRoot?
【发布时间】:2020-12-27 02:15:45
【问题描述】:
我需要在Program.cs -> Main 方法中访问IHostingEnvironment.ContentRootPath。我从互联网上关注了一些答案,但没有任何帮助。
我的代码如下所示;我可以在 IHostingEnvironment 类型的 Main 方法中声明一个变量,但我不确定应该用什么初始化它。
public static void Main(string[] args)
{
IHostingEnvironment env;
}
【问题讨论】:
标签:
asp.net-core
asp.net-core-2.0
asp.net-core-2.1
【解决方案1】:
你可以从宿主对象中获取它:
public static void Main(string[] args)
{
var builder = CreateHostBuilder(args);
var host = builder.Build();
var hostingEnvironment = host.Services.GetService(typeof(IHostingEnvironment));
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});