.net 6精简版webapi教程及热重载、代码自动反编译演示

前言:

.net6LTS版本发布已经有若干天了。此处做一个关于使用.net6开发精简版webapi(minimalapi)的入门教程,以及VS2022上面的两个强大的新技能(热重载、代码自动反编译)的顺带演示。

1、新建一个项目。此处就命名为SomeExample:

2、选择.net6版本,并且此处先去掉HTTPS配置以及去掉使用控制器的选项:

3、创建完成以后,原始画面如下所示。并且,解决方案一栏只剩下program文件,其他文件都被精简掉了。并且没有Main函数入口和命名空间等。

4、接下来开始做几个简单的webapi方法案例。先删掉原有的,替换为自定义的来个webapi方法,一个Get,一个Post。具体代码如下图所示。

5、运行以后,会打开自带的swagger页面。大佬们可以自行比对代码部分和swagger部分的一些特点。

6、执行HelloWorld这个Get方法的执行结果,如下图所示。

7、执行HelloMiniApi这个Post方法的执行结果,如下图所示。

8、Api根据不同的用途,在swagger展示上面,咱们还可以对它进行一些分类。分类通过设置Tags标签来实现,具体设置内容:在方法的末尾设置WithTags,里面指定分类的显示的名称。运行以后的swagger展示效果和有关代码,如下图所示。

9、对api方法进行分代码文件管理。如果API方法很多,全写在program里面也不现实。所以下面做个拓展。新建用于测试使用的静态类TestService,并且实现一个静态方法TestApi。其中,方法的参数必须是thisWebApplication。然后就可以通过传入的参数,来拓展实现webapi,例如此处新增一个ServiceApi的api方法,以及有关其他实现,如下图所示。

10、新增拓展的api以后,需要在program文件里面引用使用,详细内容如下图所示。

11、运行以后的swagger展示图。

12、测试下执行结果,返回预期结果,说明测试成功。

13、测试下VS2022热重载的功能,在返回值里面进行修改,然后点击热重载小火苗按钮进行热更新。

14、热更新以后,不需要重新编译,直接在swagger展示页对刚才设置的api方法进行调用,调用结果如下图所示,说明热重载更新成功。将来遇到需要调试的代码时候,大佬们都可以很方便地进行热更新,无需重新编译,可以大大提高效率。

15、接下来是依赖注入的验证测试。新增一个测试服务类TestDependencyInjection,具体实现内容如图所示。

16、TestDependencyInjection对应的接口ITestDependencyInjection内容:

17、在program文件里面,对上面的服务进行注册。此处注册一个单例实例,具体代码如下图展示。

18、接下来是验证依赖注入是否成功。此处我在ServiceApi这个webapi方法里面进行注入。注入需要注意事项:在webapi方法的委托类型的参数里面,第一个参数必须是HttpContext;然后后面是自己的参数,此处是注入服务的接口。并且在api方法里面调用了show方法进行验证。

19、运行程序,在swagger展示页面点击执行对应的webapi方法,并查看结果。如下图所示,输出show方法里面的内容,代表依赖注入成功。

20、再扩展个VS2022的隐藏技能:引用的第三方或者nuget包时候(不限制.net版本),在对应的封装的类或者方法上面,按F12,可以直接进入到反编译以后的代码里面去,可以看到封装的源码。例如此处以UseSwagger为例,在此处按F12进去瞅瞅究竟。

21、正常情况下咱们应该F12进去只能看见属性名称、方法名称,看不到具体实现。而现在是可以看到具体实现的代码的。如下图所示,方法里面的具体代码都有,也可以继续进一步F12去看底层的代码。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • .NET6新特性之 隐式命名空间引用

    早在 .NET 6 Preview 7版本中微软就已经引入隐式命名空间引用.在.NET Preview 7这个版本中这个功能是默认开启的,如果需要禁用它的化就需要配置DisableImplicitNamespaceImports来禁用,但是到了.NET6 RC1版本的时候这个功能是禁用的,如果要使用就需要通过ImplicitUsings来启用.到了.NET6正式版中这个功能又又又默认开启了.下面我们以.NET6正式拜为例,来看一下怎么使用它吧! 如果我们要在新加一个命名空间的引用,可以在项目文件

  • .NET 6线程池ThreadPool实现概述

    目录 前言 任务的调度 基本调度单元 IThreadPoolWorkItem 实现类的实例. Task 全局队列 本地队列 偷窃机制 Worker Thread 的生命周期管理 线程注入实验 .NET 5 实验一 默认线程池配置 .NET 5 实验二 调整 ThreadPool 设置 .NET 5 实验三 tcs.Task.Wait() 改为 Thread.Sleep .NET 6 实验一 默认 ThreadPool 设置 .NET 6 实验二 调整 ThreadPool 设置 .NET 6 实

  • NET6新特新 struct优化

    目录 一.Record Struct 二.readonly struct record 三.Parameterless Constructor 在.NET6中针对Struct做了一些优化,下面我们就通过一些案例来看一下.NET6中针对Struct的优化. 一.Record Struct 虽然在上一个版本中就有了record,但是上一版本中的的record是class是一个引用类型,但是record struct是值类型是一个结构, 它的使用方式如下: record struct Point(in

  • .NET 6全新配置对象ConfigurationManager介绍

    介绍 本节为大家带来.NET 6新增的ConfigurationManager,很多人好奇为啥要讲这个,读取加载配置信息都随手就来了,我们往下看一下. 翻译:这添加了 ASP.NET Core 的新 WebApplcation 和 WebApplicationBuilder已经使用的类型,允许从配置(例如appsettings.json和DOTNET_/ASPNETCORE_环境变量)中读取,同时仍然能够添加新的配置源,而无需显式重建配置.每次通过IConfigurationBuilder界面添

  • .net 6精简版webapi教程及热重载、代码自动反编译演示

    前言: .net6LTS版本发布已经有若干天了.此处做一个关于使用.net6开发精简版webapi(minimalapi)的入门教程,以及VS2022上面的两个强大的新技能(热重载.代码自动反编译)的顺带演示. 1.新建一个项目.此处就命名为SomeExample: 2.选择.net6版本,并且此处先去掉HTTPS配置以及去掉使用控制器的选项: 3.创建完成以后,原始画面如下所示.并且,解决方案一栏只剩下program文件,其他文件都被精简掉了.并且没有Main函数入口和命名空间等. 4.接下来

  • MySQL 5.0.96 for Windows x86 32位绿色精简版安装教程

    MySQL 5.0 因为"高级功能"少而成为一代经典,此为MySQL 5.0.96 for Windows x86 32位.精简后就只有几M,没办法.Microsoft Visual C++ 2005 Redistributable自行安装. 一.ibdata1: 1. INNODB类型表的数据 2. master slave服务器 删除.如果使用INNODB引擎会重建. 二.ib_logfile0和ib_logfile1: INNODB类型表的错误日志 删除.如果使用INNODB引擎

  • VB6反编译软件VB RezQV2.4a 正式版注册码

    VB6反编译软件VB RezQV2.4a 正式版 (下载该软件)软件说明:VB6反编译软件VB RezQV2.4a 正式版注册码:name: Ardith Freebairncode: 680F-69EA-7154-0CA3 发布者:Regkey.cn发布时间:2006-2-1 12:02:45发布IP:202.96.134.128

  • Android APK反编译图文教程

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用的APK进行反编译查看.下面是我参考了一些文章后简单的教程详解. (注:反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平.) 测试环境: win 7 使用工具: 我们下载地址: apktool (资源文件获取)  下载        

  • Sql Server 2008 精简版(Express)+Management Studio Express第一次安装使用图文教程

    因为需要本地测试开发一个小型的cms系统,那么下面的sql server 2008 就可以安装下面的文件了,如果正式使用推荐安装企业版. 下载地址: SQL Server 2008 Express 中文简体安装包 x86: https://download.microsoft.com/download/5/f/a/5fad1d35-e69e-448b-84dc-497061772141/SQLEXPR_x86_CHS.exe x64: https://download.microsoft.com

  • vmware 12 安装 mac os 10.12正式版的教程

    1.首先下载安装vmware 12 pro ,将VT打开(虚拟功能,以前安装过虚拟机点的同学可忽略). 2.下载mac ox 10.12正式版镜像文件(cdr后缀). 3.下载Unlocker208(vmware12安装mac os的补丁). 开始安装: ① 安装好vmware 12 pro 后,关闭vmware,并打开任务管理器,将服务标签下的vmware服务都关掉. 将下载好的unlocker208解压到全英文路径,右键以管理员身份运行win-install.cmd 注意:运行win-ins

  • Mysql免安装版设置密码教程详解

    方法1: 用SET PASSWORD命令 MySQL -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root password oldpass "newpass" 方法3: 用UPDA

  • sql server 2008 r2 express 精简版与企业版的区别

    sql server 2008 r2 express是什么版本 express是精简版的意思 r2是2008的第2版本,推荐使用. SQL Server Express 2008 r2 可以理解为 "学习版", 就是 没有某些 高级的功能, 但是用于 学习 SQL , 以及 简单的使用, 是足够了.微软网站,免费下载的.sql server 2008 r2 可以理解为 "专业版" 或者 "企业版", 具备一些高级的功能.是要付费的.公司使用的话,

  • MongoDB windows解压缩版安装教程详解

    创建目录如下 将mongodb的压缩包解压到mongodb目录下 mongodata下创建data目录存放数据:创建log目录存放目录 cmd 输入命令: D:\mongo\mongodb\bin\mongod.exe --dbpath "D:\mongo\mongodata\data" --logpath "D:\mongo\mongodata\log\MongoDB.log" --install --serviceName "mongo" -

  • 图解RedHat AS4.0硬盘版安装教程

    网上看了下图解RedHat AS4.0硬盘版安装教程,网上的好多服务器都是用的这个,现在学习以后用redhat advanse server就更上手了1.将4个ISO文件拷靠统一目录比如:c:rhas4 手工建立autoboot.bat 内容如下,并把第一个iso文件揭开把isolinux目录的所有能容cp到rhas4/dos,把RHAS 3.0的第一张盘的dosutils里地loadlin也考到dos目录下.  2.编辑autoboot.bat   loadlin vmlinuz initrd

随机推荐