访问IApplicationEnvironment.ApplicationBasePath

ygo*_*goe 10 asp.net-core

如何IApplicationEnvironment.ApplicationBasePath从代码中的任何位置从属性访问ASP.NET Core应用程序基本路径?我不是在Startup类中,而是在其他一些帮助器类中,我需要从那里找到当前应用程序的目录.还没有HttpContext,因为该方法将独立于计时器的请求进行调用.我可以询问依赖容器或其他信息吗?有没有其他方法来获取此信息?

Tse*_*eng 11

请务必查看GitHub上有关beta/rc版本的公告.

正如此处所宣布的,该IApplicationEnvrionment接口已从ASP.NET Core RC2中删除.

要在Startup方法中获取路径,请执行此操作

public Startup(IHostingEnvironment hostingEnvironment)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(hostingEnvironment.ContentRootPath)
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果您需要它,可以使用静态PlatformServices.Default方法访问它的具体类型,或者使用IoC容器注册它并在其他地方解析它.后来一个是大多数用法的首选.


Joe*_*tte 7

你现在可以从中获得

IHostingEnvironment.ContentRootPath
Run Code Online (Sandbox Code Playgroud)

IApplicationEnvironment不再存在


lxa*_*lxa 6

或者,使用

AppContext.BaseDirectory