ASP.NET Core 6.0对热重载的支持

.NET 热重载技术支持将代码更改(包括对样式表的更改)实时应用到正在运行的程序中,不需要重启应用,也不会丢失应用状态。

一、整体介绍

目前 ASP.NET Core 6.0 项目都支持热重载。在以下情况下支持应用的热重载:

      1. 仅运行一次的应用启动逻辑代码

    • 中间件,除非代码更新是委托给内联中间件进行的。

    • 已配置的服务。

    • 路由创建和配置,除非代码更新是委托给路由处理程序进行的(例如 OnInitialized)。

      2. Blazer应用中,框架将自动触发Blazor组件渲染

      3. 在 MVC 和 Razor Pages 应用中,热重载自动触发浏览器刷新

      4. 删除 Razor组件参数属性不会导致重新呈现组件。必须重启应用。

Blazor WebAssembly 热重载支持具有以下条件:

  1. 热重载对方法主体的大多数更改做出反应,例如添加、删除和编辑变量、表达式和语句。

  2. 还支持对 lambda 表达式和本地函数的主体进行更改。

  3. 不支持添加新的 lambda 或本地函数、添加新的运算符或关键字表达式。

  4. 不支持更改方法参数的名称。

  5. 不支持方法主体之外的更改。

  6. 在 Visual Studio 2022 GA (17.0) 中,只有在没有调试器的情况下运行时,才支持热重载。

.NET CLI

   使用 dotnet watch 代码激活热重载:

dotnet watch

若要强制应用重新生成和重启,请使用命令行界面中的键盘组合Ctrl+R

进行不受支持的代码编辑时(称为强制编辑), 会询问你是否要重启应用:

  • 是:重启应用。

  • 否:不重启应用,并将应用保持在运行状态而不应用更改。

  • 始终:在发生强制编辑时按需重启应用。

  • 从不:不重启应用,也避免未来出现提示。

若要禁用热重载支持,请将 --no-hot-reload 选项传递给 dotnet watch 命令:

dotnet watch --no-hot-reload

二、代码示例

 本文中我们使用一个Blazor应用示例一下Hot reload

 1. VS Code新建Blazor Server project 

dotnet new blazorserver

3bc14142cf1a281f1556269acb2103b8.png

6db6ca4b4f4213f3dc5f40db3a368b11.png

 2. dotnet watch 运行

a841477eecd5fe8338abf8b8bf2d1070.png

F:\Tranning\NET6\Blazor>dotnet watch
watch : Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload. Press "Ctrl + R" to restart.
watch : Building...正在确定要还原的项目…所有项目均是最新的,无法还原。Blazor -> F:\Tranning\NET6\Blazor\bin\Debug\net6.0\Blazor.dll
watch : Started
info: Microsoft.Hosting.Lifetime[14]Now listening on: https://localhost:7256
info: Microsoft.Hosting.Lifetime[14]Now listening on: http://localhost:5249
info: Microsoft.Hosting.Lifetime[0]Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]Content root path: F:\Tranning\NET6\Blazor\

9c8b313a2ba6e351a4e0212bf77b9350.png

330c5cc2df49284f16bfe98e5deade66.png

       首页显示的内容:

5fde4389462ed4f5120d388e02298511.png

 3. 修改index.razor中的代码

535c328d86560261f25f2aceb2730eee.png

       界面显示也自动跟着刷新了

7127a32a11036e0ab62e4bbbcc6328b1.png

  以上是ASP.NET Core 6.0对热重载的支持的一些介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode搜索文件_VS Code 新图标来临 —— 侧边栏、文件管理器、搜索、调试等区域的图标迎来全新设计...

今天(北京时间 2019 年 7 月 9 日),微软 Visual Studio Code 团队的高级设计师 Miguel Solorio 在 Twitter 上宣布了全新的图标已经来到了 VS Code Insiders 版本!这意味着,全新的图标将会在下个月发布的 VS Code 1.37 正式版中出现。此次图标…

[活动 3.30]MAUI 跨平台应用开发实战

点击上方蓝字关注我们(本文阅读时间:4 分钟)活动介绍▌MAUI 跨平台应用开发实战前端应用开发往往需要面对 iOS、Android、Windows 等多平台开发的问题。如能用一种开发工具进行多平台的开发,可以跨平台共享 UI 布局和设计&#xf…

python爬虫企业级技术点_Python爬虫必备技术点(一)

爬虫必备技术面向具有Python基础的Python爬虫爱好者,urllib和requests两个库在实际的项目中应用也非常广泛,不仅用于爬虫技术也可以应用在API接口调用方面。如果需要相关的案例可以加我QQ(610039018),另外我在B站上已发布了相关的爬虫视频(ht…

Citrix桌面及应用虚拟化系列之二:XenServer补丁

安装好XenServer之后,可以找一台管理机器(目前主流系统都支持)安装XenCenter,通过XenCenter来实现对XenServer的管理。安装XenCenter: 安装.NET Framework3.5 然后可以下载安装中文版的XenCenter,下载地址&#xff1…

OutLook2016修改注册表迁移.ost文件数据

Outlook2016默认只有一次设置存放OST文件路径的机会,是在第一创建帐号的向导上有个其他设置。如果关闭这个向导,在打开就不能修改路径了。按照这样思路,我们先关闭Outlook和Skype(新版共用一个数据库文件),…

委托原来如此简单

什么是委托?委托是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托特别用于实现事件和回调方法!使用委托:public delegate void MyDelegateDemo();private void HelloWorld(){Console.WriteLine("Hello World");}public …

http协议--笔记

HTTP协议的缺点:1.通信使用明文(不加密),内容可能会被窃听2.不验证通信方的身份,因此有可能遭遇伪装3.无法证明报文的完整性,所以有可能已遭篡改 防止窃听保护信息的几种对策:加密技术通信的加密…

sublime mysql插件_开发者最常用的8款Sublime text 3插件

Sublime Text作为一个尽为人知的代码编辑器,其优点不用赘述。界面整洁美观、文本功能强大,且运行速度极快,非常适合编写代码,写文章做笔记。Sublime Text还支持Mac、Windows和Linux各大平台,方便用户使用。种类繁多、功…

.NET Nancy 详解(三) Respone 和 ViewEngine

我们在ASP.NET MVC中可以返回各种类型的ActionResult(以下图片来自于园友--待补。。) 在Nancy 中本着简单粗暴的原则,使用方式略有不同。这期我们使用的版本是Nancy的第一个tag version 0.0.2.0。 public MainModule(IRouteCacheProvider routeCacheProvider){Get[&…

javascript中Date对象的初始化方法

为什么80%的码农都做不了架构师?>>> 在前端代码中难免会涉及到时间的操作,如何构造一个Date对象呢?javascript为我们提供如下几种方式: new Date("month dd,yyyy hh:mm:ss");new Date("month dd,yyyy&…

java id主键_JAVA主键ID生成工具类:改自twitter的分布式ID算法snowflake

祝大家新年快乐,有任何问题可与我联系:关于snowflake算法的介绍和原理这里不过多说明了,网上有很多。这里简单描述下SnowflakeUtil的优点:1、做为底层工具使用,可用于数据库主键、订单编号……2、不依赖数据库&#xf…

云上“炼”码兵器 GitHub Codespaces

GitHub 是全球最受欢迎的开发者平台, ⾃从微软收购了 GitHub 后, GitHub 的功能就越来越强⼤,除了原有的代码管理外,也增加了很多硬货,这就包括了集成 CI/CD 的 GitHub Actions ,以及完善的项⽬管理功能&am…

python 中的yum pip

为什么80%的码农都做不了架构师?>>> python 中的yum pip pip 可以管理python中的模块,之于python就像yum之于redhat 转载于:https://my.oschina.net/sskxyz/blog/368099

ArcGIS怎样获取重分类后各类所占的像元个数

【问题描述】如下图所示,给西北地区2007年平均NDVI分等级,求各个等级的面积所占百分比? 解决方法: 刚开始老在如下图所示的Properties界面中进行重分类,虽然能得到分类结果,但是却得不到像元个数,因为是连续的,也不会有属性表生成: 后来发现,工具箱中还有个分类工具…

13.ThreadPoolExecutor线程池之submit方法

jdk1.7.0_79 在上一篇《ThreadPoolExecutor线程池原理及其execute方法》中提到了线程池ThreadPoolExecutor的原理以及它的execute方法。本文解析ThreadPoolExecutor#submit。 对于一个任务的执行有时我们不需要它返回结果,但是有我们需要它的返回执行结果。对于线程…

java idea 模块_idea 多模块项目依赖父工程class找不到问题的方法

比如,我们有这么个过程,项目结构如下:a--b--ca是总结点,b是子节点,c是父节点b依赖父节点class,通过maven构建时通常我们会在子节点中添加父节点依赖,如:com.xxxc${project.version}虽…

关于OAuth2.0 Authorization Code+PKCE flow在原生客户端(Native App)下集成的思考

Working with Proof Key for Code Exchange (PKCE) - DEV Community写在前面前几天看了园友的一篇文章被广泛使用的OAuth2.0的密码模式已经废了,放弃吧 被再次提起:Implicit Flow Password Grant,均已被标记为Legacy,且OAuth2.1里…

【经典回放】多种语言系列数据结构算法:希尔排序(C/C#版)

原理:每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。 给出一组数据,如下: 0 1 2 3 4 5 6 7 8 9 49 38 65 97 …

【131天】尚学堂高淇Java300集视频精华笔记(65-66)

第65集:常用类Date类的使用JDk源码分析 Date时间类(java.util.Date) 在标准Java类库中包含一个Date类。它的对象表示一个特定的瞬间,精确到毫秒。 Date()分配一个Date对象,并初始化此对象为当前的日期和时间精确到毫秒…