ASP.NET 4 迁移到 ASP.NET Core 的部分改变

官方迁移链接:https://docs.asp.net/en/latest/migration/index.html

接下来是正文(会涉及到 .Net Core 的迁移):

从 Type 中获取 Attribute 特性:

原来是这样:

type.GetCustomAttributes()

现在是这样:

type.GetTypeInfo().GetCustomAttribute()

引用缓存:

原来是这样:

引用 System.Runtime.Caching

定义 ObjectCache cache = MemoryCache.Default; 之后,就可以使用了

现在是这样:

在 project.json 中,依赖 Microsoft.Extensions.Caching.Memory

在Startup.cs 中,添加缓存服务

public class Startup{
    public void ConfigureServices(IServiceCollection services){
        services.AddMemoryCache();
    }
}

然后在需要的地方,定义

IMemoryCache cache = new MemoryCache(new MemoryCacheOptions());

启用 Session:

原来是这样:

在纯粹的 ASP.NET 应用中,如果 Handler 需要用到 Session,需要实现 IRequiresSessionState 接口

其他的场景我就不知道了,233333,因为没怎么用过,或者太久了给忘了,2333333

现在是这样:

需要注意的是,Session 依赖 Caching,所以除了配置 Session 还要配置 Caching

在 project.json 中,依赖 Microsoft.Extensions.Caching.Memory,Microsoft.AspNet.Session

注册服务

public class Startup{
    public void ConfigureServices(IServiceCollection services){
        services.AddMemoryCache();
        services.AddSession(/* options go here */);
    }
}

启用 Session

public class Startup{
    public void Configure(IApplicationBuilder app)
    {
        app.UseSession();
    }
}

获取项目根路径:

抄自:https://blog.mariusschulz.com/2016/05/22/getting-the-web-root-path-and-the-content-root-path-in-asp-net-core

直接上代码,有什么不明白,看上面的链接

// Classic ASP.NET

public class HomeController : Controller
{
    public ActionResult Index()
    {
        string physicalWebRootPath = Server.MapPath("~/");
        
        return Content(physicalWebRootPath);
    }
}
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 + "\n" + contentRootPath);
        }
    }
}

目前就遇到这些,其他的都大同小异吧,所以没印象。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ASP.NETCore

ASP.NET Core中的ActionFilter与DI

  前几篇文章都是讲ASP.NET Core MVC中的依赖注入(DI)与扩展点的,也许大家都发现在ASP.NET CORE中所有的组件都是通过依赖注入来扩展的...

1245
来自专栏ASP.NETCore

ASP.NET Core中使用Razor视图引擎渲染视图为字符串

  在有些项目需求上或许需要根据模板生产静态页面,那么你一样可以用Razor语法去直接解析你的页面从而把解析的页面生成静态页,这样的使用场景很多,不限于生成静态...

2364
来自专栏bboysoul

使用SSHScan扫描破解ssh密码

SSHScan是一个枚举SSH密码的测试工具。使用SSHScan,可以轻松检测到弱密码。

1692
来自专栏hbbliyong

WPF备忘录(6)WPF实现打印功能

  在WPF 中可以通过PrintDialog 类方便的实现应用程序打印功能,本文将使用一个简单实例进行演示。首先在VS中编辑一个图形(如下图所示)。 ?  ...

4345
来自专栏腾讯开源的专栏

Tencent Joins the GPL Cooperation Commitment

? Hong Kong, 07 November, 2018 – Tencent, a leading provider of Internet servic...

1332
来自专栏守望轩

windows moblie 5.0在托管程序中实现短信接收和拦截

曾经尝试只用.net cf 在手机(windows moblie 5.0)中实现短信的接收,而同时拦截手机本身的短信提示,代码如下: private void ...

2148
来自专栏程序员与猫

.NET CORE——Console中使用依赖注入

1853
来自专栏.NET开发者社区

推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler

在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个...

2717
来自专栏字根中文校对软件

BitShares 2.0 环境设置

BitShares 2.0 环境设置 工作环境:Ubuntu 第一步:准备环境与下载 BitShares 2.0  Core 源代码: bitshares-c...

3756
来自专栏张善友的专栏

使用 JavaScriptService 在.NET Core 里实现DES加密算法

文章《ASP.NET Core love JavaScript》和《跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形...

2459

扫码关注云+社区

领取腾讯云代金券