zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BZOJ4569 : [Scoi2016]萌萌哒
    2016浙江省赛过山车记
    BZOJ4546(原) : 三元组
    BZOJ4539 : [Hnoi2016]树
    BZOJ4537 : [Hnoi2016]最小公倍数
    BZOJ4538 : [Hnoi2016]网络
    BZOJ4527 : K-D-Sequence
    BZOJ4504 : K个串
    BZOJ4471 : 随机数生成器Ⅱ
    BZOJ3659 : Which Dreamed It
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837048.html
Copyright © 2011-2022 走看看