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

  • 相关阅读:
    软件设计项目进展18 2019/9/4
    软件设计项目进展17 2019/9/4
    软件设计项目进展16 2019/9/3
    将mcomaster配置以apache运行
    mcollective的web控制台---mcomaster搭建
    check_mk自定义监控增加性能数据图形展示
    check_mk自定义监控实践之powershell
    搭建puppet dashboard及遇到的问题
    通过MCollective实现puppet向windows的推送
    利用puppet管理配置IIS
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837048.html
Copyright © 2011-2022 走看看