强强的个人技术博客 医技科室软件(PACS, RIS)码农

asp.net Core webapi 中 获取应用程序所在目录的三种方式

在以前asp.net MVC项目中的时候,获取当前项目的根目录非常容易,我们使用

Server.MapPath("~/");


WebAPI的控制器中应该是因

1. string basePath1 = AppContext.BaseDirectory;

2.string basePath2 =Path.GetDirectoryName(typeof(Program).Assembly.Location);

3.从ASP.NET Core RC2开始,可以通过依赖注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径,如下所示:

using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
 
namespace AspNetCorePathMapping
{
    public class HomeController : Controller
    {
        private readonly IHostingEnvironment _hostingEnvironment;
 
        public HomeController(IHostingEnvironment hostingEnvironment)
        {
            _hostingEnvironment = hostingEnvironment;
        }
 
        public ActionResult Index()
        {
            string webRootPath = _hostingEnvironment.WebRootPath;
            string contentRootPath = _hostingEnvironment.ContentRootPath;
            //webRootPath: D:\后端项目\testCore\test.WebApi\wwwroot
          // contentRootPath: D:\后端项目\testCore\test.WebApi

            return Content(webRootPath + "\n" + contentRootPath);
        }
    }
}


2023年2月27日 | 发布:强强 | 分类:ASP.NET Core | 评论:0

发表留言: