• ASP.Net core 中Server.MapPath的替换方法


    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;
     
                return Content(webRootPath + " " + contentRootPath);
            }
        }
    }
    通过WebRootPath的使用,基本可以达到Server.MapPath同样的效果。但是这是在controller类中使用。

    在普通类库中获取:

    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Http;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.IO;
     
    namespace HH.Util
    {
        public static class CoreHttpContext
        {        
            private static Microsoft.AspNetCore.Hosting.IHostingEnvironment _hostEnviroment;       
            public static string WebPath => _hostEnviroment.WebRootPath;
     
            public static string MapPath(string path)
            {
                return Path.Combine(_hostEnviroment.WebRootPath, path);
            }
     
            internal static void Configure(Microsoft.AspNetCore.Hosting.IHostingEnvironment hostEnviroment)
            {
                _hostEnviroment = hostEnviroment;
            }
        }
        public static class StaticHostEnviromentExtensions
        {
            public static IApplicationBuilder UseStaticHostEnviroment(this IApplicationBuilder app)
            {
                var webHostEnvironment = app.ApplicationServices.GetRequiredService<Microsoft.AspNetCore.Hosting.IHostingEnvironment>();
                CoreHttpContext.Configure(webHostEnvironment);
                return app;
            }
        }
    }

    然后在Startup.cs的Configure方法中:

    app.UseStaticHostEnviroment();

      只需要将原来的Server.Path替换为CoreHttpContext.MapPath就可以

    原文:https://blog.csdn.net/shanghaimoon/article/details/114338839

  • 相关阅读:
    Prometheus—告警altermanger
    Prometheus监控Kafka
    get与post(转)
    js typeof
    设置SQL脚本大小敏感
    max Count Group by
    统计当年登陆次数
    IOC
    ORM
    [转载]C#实现获取浏览器信息
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837048.html
Copyright © 2020-2023  润新知