【.NET 6】使用.NET 6开发minimal api以及依赖注入的实现、VS2022热重载和自动反编译功能的演示

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


前言:


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

 

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

1995789-20211130230340681-2070080249.png

 

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

 1995789-20211130230346950-1470220689.png

 

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

1995789-20211130230354770-1753154932.png

 

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

1995789-20211130230402412-1729635324.png

 

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

1995789-20211130230409308-1800135940.png

 

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

1995789-20211130230415703-1661205261.png

 

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

1995789-20211130230423019-1557971637.png

 

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

1995789-20211130230430892-1261906506.png

 

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

 1995789-20211130230438678-1580862113.png

 

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

1995789-20211130230447327-2007642536.png

 

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

1995789-20211130230454588-1386824171.png

 

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

 1995789-20211130230501954-1904414982.png

 

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

 

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

1995789-20211130230519801-1999923795.png

 

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

1995789-20211130230526863-156899377.png

 

16TestDependencyInjection对应的接口 ITestDependencyInjection内容:

 1995789-20211130230535675-1921271221.png

 

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

 1995789-20211130230543501-879144018.png

 

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

1995789-20211130230551092-2092492711.png

 

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

1995789-20211130230558436-371601774.png

 

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

1995789-20211130230605829-2008124518.png

 

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

1995789-20211130230614140-1892674102.png

 

以上就是该篇博客的全部内容,欢迎大佬们留言、推荐或点赞,或者一起谈人生。祝各位大佬们,玩.net 6玩的开心~~


本文链接:https://www.cnblogs.com/weskynet/p/15626899.html


目录
相关文章
|
存储 缓存 API
实现电商物流API的实时追踪功能
在电商时代,实时物流追踪已成为提升用户体验的核心功能。本文详解如何通过物流API实现包裹位置追踪、ETA计算及数据优化,涵盖API集成、后端处理、前端展示与性能调优,助力构建高效可靠的追踪系统,提升用户信任与满意度。
|
11月前
|
SQL 运维 关系型数据库
【产品升级】Dataphin V5.0版本发布:助力出海业务、增全量一体集成、异步调用API等更多功能等你发现
Dataphin是瓴羊推出的智能数据建设与治理平台,基于阿里巴巴内部实践,提供一站式数据建设与治理能力。V5.0版本研发新增支持Databricks作为离线计算引擎、支持MySQL数据库一键增全量同步、支持管理Hudi、Delta Lake表等;资产运营与消费持续提效,支持批量编辑目录名称及描述、Quick BI仪表板的上架管理等功能,增加资产可用性与盘点效率。
491 8
|
11月前
|
存储 数据可视化 Java
Java Stream API 的强大功能
Java Stream API 是 Java 8 引入的重要特性,它改变了集合数据的处理方式。通过声明式语法,开发者可以更简洁地进行过滤、映射、聚合等操作。Stream API 支持惰性求值和并行处理,提升了代码效率和可读性,是现代 Java 开发不可或缺的工具。
206 0
Java Stream API 的强大功能
|
12月前
|
供应链 API 数据安全/隐私保护
电商API数据接口的核心功能
电商API数据接口是电商平台与外部系统通信的核心工具,具备订单管理、库存同步和电子面单获取三大功能。它实现订单信息实时同步、多平台整合与状态更新,提升商家运营效率;通过库存数据双向同步,避免超卖并优化库存成本;同时自动获取电子面单号,加快发货流程。电商API在提升交易效率与用户体验方面具有重要作用。
|
12月前
|
JSON 算法 API
拼多多API跨店比价功能,选品效率提升60%!
拼多多推出API跨店比价功能,助力商家与消费者高效选品。通过自动化比价与智能算法,实现选品效率提升60%。开发者可快速集成,优化采购与购物体验。智能高效,抢占市场先机。了解详情:https://o0b.cn/evan
1070 0
|
12月前
|
安全 API 开发者
Docker Remote API的功能详述及其使用方法。
综上所述,Docker Remote API是管理Docker环境的强大工具,它使得开发者能够更灵活地集成和自动化Docker相关的操作。通过遵循Docker守护进程的安全配置标准和正确使用HTTP请求,可以有效地控制Docker守护进程,实现高效的容器管理和自动化部署。
340 0
|
Java API
深入解析Java API中Object类的功能
了解和合理运用 Object类的这些方法,对于编写可靠和高效的Java应用程序至关重要。它们构成了Java对象行为的基础,影响着对象的创建、识别、表达和并发控制。
244 0
Dataphin功能Tips系列(64)-API资产编目及上架
在企业数据部门中,因API命名不规范、分类不清、信息不全等问题,导致业务开发人员查找困难、重复咨询、误用接口等,影响效率。Dataphin提供API资产编目与上架功能,通过目录规划、属性管理、手动/自动上架等方式,实现API的系统化管理与精准检索,提升业务响应效率。
294 0
|
JSON 自然语言处理 API
根据标题利用API优化电商搜索功能:提升转化率
本文探讨如何通过API优化电商平台搜索功能,提升用户搜索到购买的转化率。传统搜索依赖简单关键词匹配,常导致结果不相关,影响用户体验与成交率。利用NLP(自然语言处理)API,可分析商品标题语义,提取关键词与向量,实现更精准的智能匹配。通过预处理标题、构建智能索引、相关性排序等步骤,能有效提升搜索转化率15%-25%。文章附实现代码与集成指南,助力电商平台升级搜索系统。