【发布时间】:2020-01-14 18:25:16
【问题描述】:
我将一个经典的 C# MVC 项目迁移到 .NET Core,并且我有一个实用项目,我需要在其中访问 App_Data 文件夹。
我已经在这个新项目中在wwwroot 之外创建了我的App_Data 文件夹,但我需要从这个实用项目中获取对它的引用。
这是我的旧代码:
public static class Common
{
private static void DeleteTestFiles()
{
var path = HttpContext.Current.Server.MapPath("~/App_Data/Files");
.....
}
}
我读到在 3.0 中有一种方法可以做到这一点,这里是示例:
private readonly IWebHostEnvironment _hostingEnvironment;
public HomeController(IWebHostEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public ActionResult Index()
{
string webRootPath = _hostingEnvironment.WebRootPath;
string contentRootPath = _hostingEnvironment.ContentRootPath;
return Content(webRootPath + "\n" + contentRootPath);
}
但上面的代码是针对存在于 Web 项目中的控制器。我的实用程序项目公共类不是控制器,而是一个静态类,所以我不能使用构造函数来自动注入 IWebHostEnvironment。
任何线索我如何才能获得路径,或者我可能需要手动注入 IWebHostEnvironment 但不知道。
【问题讨论】:
标签: asp.net-core asp.net-core-3.0