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

  • 相关阅读:
    Java:前程似锦的 NIO 2.0
    优秀的程序员都热爱写作
    Java -- JDBC 学习--获取数据库链接
    前端学习 -- Html&Css -- 条件Hack 和属性Hack
    前端学习 -- Html&Css -- ie6 png 背景问题
    前端学习 -- Html&Css -- 框架集
    ECMAScript 6 -- 字符串的扩展
    ECMAScript 6 -- 数组的解构赋值
    前端学习 -- Html&Css -- 表单
    前端学习 -- Html&Css -- 表格
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837048.html
Copyright © 2011-2022 走看看