在 ASP.NET vNext 中获取应用程序路径

9

我一直在尝试在asp.net 5中打开文件,但并没有很大的成功。

过去,您可以使用Server.MapPathHostingEnvironment.ApplicationPhysicalPath。它们都在基于OWIN的框架中消失了。

有一个HostingEnvironment类,但它在System.Aspnet中,但它需要由托管环境初始化(它不再具有ApplicationPhysicalPath的静态成员,但我猜测WebRoot成员现在会做到这一点。问题是我找不到任何参考资料。

我还看了一下Context.GetFeature<>,但似乎没有任何功能可以显示应用程序路径,只有与请求和响应相关的信息。列出特性的代码可以在此处找到here

<snark> ASP.NET中处理文件的能力是已停止的功能吗?</snark>

还有可能我现在无法正常思考,错过了什么。

2个回答

12

5
IApplicationEnvironment现在位于Microsoft.Extensions.PlatformAbstractions命名空间中。 - Domysee
1
IApplicationEnvironment在ASP.NET Core 1.0中已更名为IHostingEnvironment。更多信息请参见此处 - https://docs.asp.net/en/latest/migration/rc1-to-rtm.html - Sergey

6
现在有两种方法:
using Microsoft.Extensions.PlatformAbstractions;

public Startup(IApplicationEnvironment appEnv)
{
    // approach 1
    var path01 = PlatformServices.Default.Application.ApplicationBasePath;

    // approach 2
    var path02 = appEnv.ApplicationBasePath;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接