.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. Spark——统计文本中单词出现的次数

    示例一:统计所有单词出现的次数 1.在本地创建文件并上传到hdfs中 #vin data.txt //将文件上传到hadoop的根目录下 #hdfs dfs -put data.txt / 2.在sp ...

  2. fiddler模拟弱网1

    第一步: 首先你得将你的fiddle配置好了,并链接上了移动端. 参考 这篇文章:http://www.cnblogs.com/lijiageng/p/6214162.html     第二步: 使用 ...

  3. 帆软报表(finereport)单元格函数,OP参数

    单元格模型:单元格数据和引用:数据类型.实际值与显示值.单元格支持的操作单元格样式:行高列宽.隐藏行列.自动换行.上下标.文字竖排.大文本字段分页时断开.标识说明.格式刷单元格Web属性:web显示. ...

  4. Ubuntu20.04.3中telnet 127.0.0.1时Unable to connect to remote host: Connection refused

    本博客旨在自我学习使用,如有任何疑问请及时联系博主 今天遇到个稀奇古怪的问题: 调试emqx的时候一直econnrefused,检查服务时,突然发现在ubuntu上telnet localhost竟然 ...

  5. Solution -「NOI 模拟赛」出题人

    \(\mathcal{Description}\)   给定 \(\{a_n\}\),求一个 \(\{b_{n-1}\}\),使得 \(\forall x\in\{a_n\},\exists i,j\ ...

  6. 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异. 近期有 i.MXRT 客户在集成 OTA SBL ...

  7. aspnetcore 使用serilog日志

    而在实际项目开发中,使用第三方日志框架来记录日志也是非常多的,首先一般基础的内置日志记录器在第三方日志框架中都有实现,然后很多第三方日志框架在功能上更强大和丰富,能满足我们更多的项目分析和诊断的需求. ...

  8. Linux CentOS 搭建SVN并用钩子自动实现同步到Web目录

    linux安装配置SVN并设置钩子   安装说明 系统环境:CentOS-6.3安装方式:yum install (源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件 检查已安装版本 # ...

  9. CentOS8系统上Zookeeper安装启动

    下载Zookeeper安装包,下载地址为:https://zookeeper.apache.org/releases.html.注意选择bin的gz包,否则安装不成功,提示找不到相应的类. 一.单机模 ...

  10. 请求XSS攻击原理

    起因 巨人的肩膀 一个神秘URL酿大祸,差点让我背锅! (qq.com)