在 asp.net vnext 中获取应用程序路径
get application path in asp.net vnext
我一直试图在 asp.net 5 中打开一个文件,但没有取得很大的成功。
您过去使用 Server.MapPath
或 HostingEnvironment.ApplicationPhysicalPath
。它们都在基于 OWIN 的框架中消失了。
有一个 HostingEnvironment
class 但它在 System.Aspnet
但它需要由托管环境初始化(它不再有 [=15= 的静态成员] 但我猜 WebRoot
成员现在这样做了。问题是我无法在任何地方找到对它的引用。
我也看过 Context.GetFeature<>
但它似乎没有任何可以显示应用程序路径的功能,只有请求和响应相关信息。可以找到列出功能的代码 here.
<snark>
处理文件的功能是否已在 ASP.NET 中停止使用?</snark>
也有可能是我现在brain不太好,错过了什么。
您可以从 Microsoft.Framework.Runtime.IApplicationEnvironment
服务的 ApplicationBasePath
属性 中获取它。
现在有两种方法:
using Microsoft.Extensions.PlatformAbstractions;
public Startup(IApplicationEnvironment appEnv)
{
// approach 1
var path01 = PlatformServices.Default.Application.ApplicationBasePath;
// approach 2
var path02 = appEnv.ApplicationBasePath;
}
我一直试图在 asp.net 5 中打开一个文件,但没有取得很大的成功。
您过去使用 Server.MapPath
或 HostingEnvironment.ApplicationPhysicalPath
。它们都在基于 OWIN 的框架中消失了。
有一个 HostingEnvironment
class 但它在 System.Aspnet
但它需要由托管环境初始化(它不再有 [=15= 的静态成员] 但我猜 WebRoot
成员现在这样做了。问题是我无法在任何地方找到对它的引用。
我也看过 Context.GetFeature<>
但它似乎没有任何可以显示应用程序路径的功能,只有请求和响应相关信息。可以找到列出功能的代码 here.
<snark>
处理文件的功能是否已在 ASP.NET 中停止使用?</snark>
也有可能是我现在brain不太好,错过了什么。
您可以从 Microsoft.Framework.Runtime.IApplicationEnvironment
服务的 ApplicationBasePath
属性 中获取它。
现在有两种方法:
using Microsoft.Extensions.PlatformAbstractions;
public Startup(IApplicationEnvironment appEnv)
{
// approach 1
var path01 = PlatformServices.Default.Application.ApplicationBasePath;
// approach 2
var path02 = appEnv.ApplicationBasePath;
}