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

作者:WeskyNet 时间:2024-05-05 09:13:12 

前言:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

来源:https://www.cnblogs.com/weskynet/p/15626899.html

标签:.net,webapi,热重载,代码反编译
0
投稿

猜你喜欢

  • Pandas数据结构详细说明及如何创建Series,DataFrame对象方法

    2021-03-14 12:13:35
  • CSS中背景background的一些语法

    2009-03-24 21:02:00
  • 客户体验

    2008-12-11 13:58:00
  • Echarts基本入门之柱状图、折线图通用配置

    2024-04-28 09:37:10
  • 简单易懂Pytorch实战实例VGG深度网络

    2021-09-07 19:47:24
  • Python2随机数列生成器简单实例

    2021-11-18 08:12:37
  • 关于vue3 vuex4 store的响应式取值问题解决

    2024-05-02 16:32:55
  • 轻松掌握 MySQL的数字类型以及建库策略

    2008-11-27 16:09:00
  • 如何通过PHP实现Des加密算法代码实例

    2023-10-08 09:41:55
  • 如何使用scrapy中的ItemLoader提取数据

    2021-01-10 07:02:06
  • 利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)

    2021-07-16 11:37:24
  • Pytorch实现LSTM和GRU示例

    2022-02-08 09:14:44
  • Python中的配对函数zip()解读

    2021-04-14 20:54:33
  • python OpenCV实现答题卡识别判卷

    2023-12-20 17:27:57
  • Python通过RabbitMQ服务器实现交换机功能的实例教程

    2023-08-24 01:15:19
  • SqlServer 数据库 三大 范式

    2024-01-15 06:58:55
  • Python 判断文件或目录是否存在的实例代码

    2021-08-16 14:44:49
  • python基础知识之索引与切片详解

    2023-11-30 03:03:52
  • asp如何验证字符串是否包含有效字符?

    2009-11-08 19:02:00
  • 微信小程序自定义支持图片的弹窗

    2024-04-16 10:31:25
  • asp之家 网络编程 m.aspxhome.com