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

  • 相关阅读:
    Big Number
    Who will be punished
    find your present (2)
    Being a Good Boy in Spring Festival
    day4__列表的初识(列表的创建、增删改查、元组、range)
    day3、基础___(基础数字类型、字符串索引与切片、str常用操作方法)
    day2、基础__(while循环、格式化输出、运算符、初始编码)
    day1: 基础 __ (变量、常量、注释、数据类型、input、 if)
    十八、FTP配置
    十七、交换机配置管理IP和telnet登陆设置
  • 原文地址:https://www.cnblogs.com/johnblogs/p/14837048.html
Copyright © 2011-2022 走看看