.NET 6 发布后,我们现有的应用会逐步升级到这个版本,首当其冲的是原因的ASP.NET Core的工程,如果一步一步升级到ASP.NET Core 6.0。

上一篇博文中,跟大家详细介绍了中间件、添加终结点路由、内容根、应用名称和环境、添加配置提供程序、添加日志记录提供程序、DI依赖注入管理添加、注册服务这几块升级中的一些常用代码实现。

一步一步迁移ASP.NET Core 6.0-Part1

本文我们继续其他的一些升级ASP.NET Core 6.0的一些常用代码示例。

一、通用主机Host构造器

ASP.NET 5 中使用Host类自定义IHostBuilder的实现代码:

升级ASP.NET Core 6.0后的代码实现:

在ASP.NET Core 6.0中通过WebApplication这个类可以直接创建一个IHostBuilder的实现Microsoft.AspNetCore.Builder.WebApplicationBuilder,基于这个类设置Host启动的一些属性:

如下代码:

关于WebApplication的解释,大家可以参考以下链接:

WebApplication 类 https://docs.microsoft.com/zh-CN/dotnet/api/microsoft.aspnetcore.builder.webapplication?view=aspnetcore-6.0

二、Web主机Host构造器

ASP.NET 5 中使用Host类自定义IHostBuilder的实现代码:

升级ASP.NET Core 6.0后的代码实现:

在ASP.NET Core 6.0中通过WebApplication这个类可以直接创建一个IHostBuilder的实现Microsoft.AspNetCore.Builder.WebApplicationBuilder,基于这个类设置WebHost启动需要的一些属性:

如下代码:

 三、更改Web根

默认情况下,Web 根是相对于 wwwroot 文件夹中的内容根。 Web 根是静态文件中间件查找静态文件的位置

通过设置 WebApplicationOptions 上的 WebRootPath 属性,可以更改 Web 根:

以下是ASP.NET Core 5.0 中对Web根的使用:

升级ASP.NET Core 6.0后的代码实现:

直接设置WebApplicationOptions的WebRootPath即可:

四、自定义依赖注入 (DI) 容器

我们以Autofac 依赖注入框架为例,给大家示例ASP.NET Core5.0的实现和ASP.NET Core6.0的实现

ASP.NET Core 5.0使用Autofac作为DI依赖注入容器的代码实现:

ASP.NET Core 6.0使用Autofac作为DI依赖注入容器的代码实现:

builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory());
builder.Host.ConfigureContainer<ContainerBuilder>(builder => builder.RegisterModule(new MyApplicationModule()));

五、添加服务、使用服务

Startup.Configure 可以注入通过 IServiceCollection 添加的任何服务。

ASP.NET Core 5.0的代码实现:

在 ASP.NET Core 6 中:有一些通用服务可用作 WebApplication 上的顶级属性。

其他服务需要通过 IServiceProvider 从 IServiceProvider 手动解析

以上是升级ASP.NET Core 6.0的一些常用代码示例和实践,分享给大家。

周国庆

2022/3/22

一步一步迁移ASP.NET Core 6.0-Part2的更多相关文章

  1. 一步一步迁移ASP.NET Core 6.0-Part1

    .NET 6 发布后,我们现有的应用会逐步升级到这个版本,首当其冲的是原因的ASP.NET Core的工程,如果一步一步升级到ASP.NET Core 6.0 本文简单整理一下升级ASP.NET Co ...

  2. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  3. ASP.NET Core 3.0 迁移避坑指南

    一.前言 .NET Core 3.0将会在 .NET Conf 大会上正式发布,截止今日发布了9个预览版,改动也是不少,由于没有持续关注,今天将前面开源的动态WebApi项目迁移到.NET Core ...

  4. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

  5. 为什么你需要将代码迁移到ASP.NET Core 2.0?

    随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代.开发者们可以选择使用命令行.个人喜好的文本编辑器.Visual Studio 2017 15.3 和 Visual Stu ...

  6. ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移

    写在前面 在前一小节中,我们创建了基于RESFULL风格的服务.这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移. 一.开发环境 [1]运行环境:win10 家庭版 [2]开发工具 ...

  7. ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介

    概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...

  8. 跨平台运行ASP.NET Core 1.0

    前言 首先提一下微软更名后的叫法: ASP.NET 5 更名为 ASP.NET Core 1.0 .NET Core 更名为 .NET Core 1.0 Entity Framework 7 更名为  ...

  9. 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. 2021羊城杯比赛复现(Crypto)

    bigrsa 题目: from Crypto.Util.number import * from flag import * n1 = 10383529640908175186077053551474 ...

  2. Charles抓包工具介绍

    1.Charles是什么? Charles是一款基于http协议的代理服务器,通过称为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的. 2.Charles有哪些用途? (1)能够分析前 ...

  3. HashMap自动扩容机制源码详解

    一.简介 HashMap的源码我们之前解读过,数组加链表,链表过长时裂变为红黑树.自动扩容机制没细说,今天详细看一下 往期回顾: Java1.7的HashMap源码分析-面试必备技能 Java1.8的 ...

  4. Linux用户配置文件、口令配置文件、组配置文件

    1.用户配置文件:保存用户信息 /etc/passwd 2.口令配置文件 /etc/shadow 每一行解释:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效 ...

  5. 手把手带你基于嵌入式Linux移植samba服务

    摘要:Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成. 本文分享自华为云社区<嵌入式Linux下移植samba服务--<基于北斗和4G ca ...

  6. 「Python实用秘技05」在Python中妙用短路机制

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第5期 ...

  7. 关于SpringCloud中,使用 Hystrix的问题

    springCloud升级后.导致 HtystrixDashboard 默认的servlet请求路径修改了 将业务的微服务使用 HtystrixDashboard 仪表盘第一次监控时出现 Unable ...

  8. kali linux安装nessus

    详细介绍在 Kali 中安装 Nessus 的详细过程步骤以及插件下载失败解决方法. 实验环境 安装过程 下载 Nessus 安装 Nessus 启动 Nessus 获取激活码 登陆 web 界面 N ...

  9. 8款国内外主流商业智能BI工具分析,助你轻松选型!

    BI(Business Intelligence),即商业智能或商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策 ...

  10. XDMCP远程连接Linux桌面

    转至:https://blog.csdn.net/u014008779/article/details/90724651 XDMCP远程连接Linux桌面 1.安装epel源(不安装会找不到light ...