.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

最新文章

  1. lua解析赋值类型代码的过程
  2. 《BI那点儿事》META DATA(元数据)
  3. VB6.0 调用存储过程
  4. 39. Volume Rendering Techniques
  5. 一个人的Scrum之准备工作
  6. 在dreamweaver中输入代码时不会有提示的解决办法
  7. python 练习 8
  8. UI-程序的运行顺序
  9. iOS 复杂tableView的 cell一般设计思路
  10. SVG的基础使用
  11. Android Studio项目构建常见问题解决
  12. Tableau Desktop 10.4.2 的安装和激活
  13. JSON Patch
  14. js-day03-事件响应和练习题
  15. 为共享服务器配置Oracle数据库
  16. java笔记 -- java数据类型与类型转换
  17. 【转】《iOS7 by Tutorials》系列:iOS7的设计精髓(上)
  18. jsp 中文乱码
  19. sql两列相除,保留n位小数
  20. php 导出

热门文章

  1. Spring中声明式事务处理和编程式事务处理的区别
  2. 04 js
  3. 论文解读(DAEGC)《Improved Deep Embedded Clustering with Local Structure Preservation》
  4. linux 普通分区与lvm分区
  5. ajax的发展
  6. ssh 主机之间免密配置脚本
  7. SpringBoot整合Redis案例缓存首页数据、缓解数据库压力
  8. pytest(3)-测试命名规则
  9. 正确理解jmeter线程组之Ramp-Up
  10. Docker 设置国内镜像源