排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术
分类:
.NET Core
在net framework中获取绝对路径可以使用
Server.MapPath("~")
but.....在net core中并没有那个Server对象了
在net core中怎么获取呢?
其实也很简单,注入一个IHostingEnvironment对象就可以了。对,net core就是那个喜欢依赖注入
使用的时候:
//获取项目的根目录 string rootpath = _hostingEnvironment.ContentRootPath; //获取存储静态资源的wwwroot所在的根目录 string webRootPath = _hostingEnvironment.WebRootPath;
2020-3-16更新
IHostingEnvironment在net core3.0中过期了应该使用IWebHostEnvironment
private readonly IWebHostEnvironment _webHostEnvironment; public ResourceManagerController(IWebHostEnvironment webHostEnvironment) { _webHostEnvironment = webHostEnvironment; }
这样可以也可以 2022年更新
Directory.GetCurrentDirectory()
合并路径可以这样使用
string baseDir = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads/files");
就是这样用了,知道怎么用了
尝试来分析一波,这样使用依赖注入与前面的Server.MapPath("~")有什么好处
虽然使用没有以前的方便,以前要使用随时都可以使用。
但是现在你可以控制用不用哇,不需要用的时候系统不会加载IHostingEnvironment对象,也就
不会消耗相关的资源,从而节约了效率,需要用的时候在使用注入就可以了!。
总:
1:以前的Server.MapPath使用方便,但是不管什么时候不管用不用他都会消费效率,都以为创建server对象
2:现在的虽然使用麻烦一点,但是可以控制要不要使用它,可控性更强,可扩展性更好,这就是所谓的以时间换效率吧,
没有绝对的完美,随着时代的发展项目要求的提高,我们现在更需要的是可控性,可扩展性,可维护性。当然从而也会付出一些
其他东西,需要维护和注意的东西更多一点。
欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739
评价