项目代码第1讲:各个文件夹是什么意思?按照官方文档教程创建项目,各个文件夹的理解、框架自主生成的Controller(Restful风格)

一、各个文件夹是什么意思?

CacheHelper:给InMemory存储器

InMemory存储器【官方文档自带的】,副存储器SlaveController也没有用上

mappingProfile:原本想映射,也没用上

SelfStarting.cs:在桌面生成这个图标,可以直接点击它运行后端代码。【但是如果在后端中修改了代码的话,那必须还是得在后端代码处运行】

socket文件夹:用于和opc ua客户端通信

WebSocket文件夹【没用上,旧思路是使用session和cookie进行身份验证。现在使用token了】)
1>WebSocketClientCollection.cs:所有WebSocket的连接对象存储列表,包括一些处理函数,可扩展
2>SessionIdCollection.cs:和上述文件合用,存储session的副本,用于保证session过期之后描述断开websocket的用户id
3>WebSocketMiddleware.cs:Websocket中间件处理类,在中间件的管道顺序当中,包括中间件类文件处理的模板。接收识别WebSocket连接请求,存储,包括简单的消息转发和处理。

Handle文件夹:
    CreateId.cs:生成随机的ID,九位数,第一位可以指定,传入参数为char类型
    SendEmail.cs:邮件发送类;
    sha256.cs:SHA256加密算法封装,传入字符串,返回加密后的字符串;
    sql.cs:原生的SQL查询函数,可以直接用

Contexts【等于前面的Enitites,DbSet里面有Upddate、Delete等,可以对数据库中的数据进行修改】:添加数据库上下文

Models【就是前面的展示层,这里对应的是在前端展示的数据接口(就是第11讲的Models)】:添加模型类。是Contexts里面的每个表格的数据类型(有哪些列,列有什么用) 加新功能,改这三个文件就行了

appsettings.json:配置连接的数据库地址

二、按照官方文档教程创建项目,各个文件夹的理解

教程:使用 ASP.NET Core 创建 Web API | Microsoft Learn了解如何使用 ASP.NET Core 生成 Web API。icon-default.png?t=O83Ahttps://learn.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-7.0&source=recommendations&tabs=visual-studio

三、Controller各个部分【对应Restful风格】详解

1、[HttpGet]

1>IActionResult<>和ActionResult<>,.NET6第2讲八、

        IActionResult类型,只返回状态码。

        ActionResult 类型:返回状态码和返回值类型 

2>async 和 await 关键字用于定义和等待异步方法的执行

3>Task<> 类型表示异步操作的结果或状态

4> IEnumerable<> 接口用于表示可以枚举的集合。

  1. async 关键字
    • async 关键字用于标记一个方法为异步方法。它告诉编译器该方法内部可能有异步操作,并且该方法将返回一个 Task 或 Task<T>
    • 异步方法允许你在不阻塞调用线程的情况下执行耗时操作,如I/O操作或长时间运行的计算。
    • 在异步方法内部,你可以使用 await 关键字来等待异步操作的完成。
  2. await 关键字
    • 等待异步操作完成
      await 关键字用于等待一个返回 Task 或 Task<T> 对象的异步方法完成。当异步操作完成后,await 表达式会返回异步操作的结果(如果有的话)。

    • 只能在异步方法中使用
      await 关键字只能在标记为 async 的方法内部使用。如果尝试在同步方法或构造函数中使用 await,编译器将报错。

    • 不阻塞线程就理解成等待这个操作完成后才会执行下面的代码

  1. Task<> 类型
    • Task<> 是一个泛型类型,它表示一个可以异步执行的操作。Task<T> 表示一个返回类型为 T 的异步操作,而 Task(没有泛型参数)表示一个不返回值的异步操作。
    • Task 和 Task<T> 都提供了状态信息,如操作是否已完成、是否已取消或是否发生了异常。
    • 异步方法通常返回 Task 或 Task<T>,以便调用者可以等待操作的完成或获取操作的结果。
  2. IEnumerable<> 接口
    • IEnumerable<> 是一个泛型接口,它用于定义可以按顺序访问其成员的集合。IEnumerable<T> 表示一个可以枚举其元素的类型为 T 的集合。
    • 实现 IEnumerable<T> 接口的集合可以使用 foreach 循环进行迭代。
    • IEnumerable<T> 通常用于表示可能包含多个元素的集合,但集合的具体类型和实现是未知的或可变的。

2、[HttpGet("{id}")]

3、[HttpPut("{id}")]:改(扑gai)

1>try-catch:如果在try块内的代码执行期间发生了异常(即一个运行时错误),那么程序的控制流会立即从异常发生点跳转到与该try块相关联的catch块(如果存在的话)。

2>return NoContent():表示请求已成功处理,但响应体不包含任何内容。

4、[HttpPost]:增

1>nameof():获取名称。

当你使用nameof时,你实际上是在引用代码中的一个标识符(如变量名、属性名、方法名等)。这意味着如果那个标识符在后续的代码重构中被重命名,所有使用nameof的地方都会自动更新

2>利用Post测试两个Get

5、[HttpDelete("{id}")]

6、私有方法,检查在给定的数据库上下文 _context 中是否存在具有指定 id 的 TodoItem。

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

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

相关文章

机器学习算法(六)---逻辑回归

常见的十大机器学习算法&#xff1a; 机器学习算法&#xff08;一&#xff09;—决策树 机器学习算法&#xff08;二&#xff09;—支持向量机SVM 机器学习算法&#xff08;三&#xff09;—K近邻 机器学习算法&#xff08;四&#xff09;—集成算法 机器学习算法&#xff08;五…

docker安装hadoop环境

一、使用docker搭建基础镜像 1、拉取centos系统镜像 # 我这里使用centos7为例子 docker pull centos:7 2、创建一个dockerfiler文件&#xff0c;用来构建自定义一个有ssh功能的centos镜像 # 基础镜像 FROM centos:7 # 作者 #MAINTAINER hadoop ADD Centos-7.repo /etc/yum.re…

vue 2 父组件根据注册事件,控制相关按钮显隐

目标效果 我不注册事件&#xff0c;那么就不显示相关的按钮 注册了事件&#xff0c;才会显示相关内容 实现思路 组件在 mounted 的时候可以拿到父组件注册监听的方法 拿到这个就可以做事情了 mounted() {console.log(this.$listeners, this.$listeners);this.show.search !…

第29天 MCU入门

目录 MCU介绍 MCU的组成与作用 电子产品项目开发流程 硬件开发流程 常用元器件初步了解 硬件原理图与PCB板 常见电源符号和名称 电阻 电阻的分类 贴片电阻的封装说明&#xff1a; 色环电阻的计算 贴片电阻阻值计算 上拉电阻与下拉电阻 电容 电容的读数 二极管 LED 灯电路 钳位作…

王道考研编程题总结

我还在完善中&#xff0c;边复习边完善&#xff08;这个只是根据我自身总结的&#xff09; 一、 线性表 1. 结构体 #define MaxSize 40 typedef struct{ElemType data[MaxSize]&#xff1b;int length; }SqList 2. 编程题 1. 删除最小值 题意 &#xff1a;从顺序表中删除…

PHM技术:一维信号时序全特征分析(统计域/频域/时域)| 信号处理

目录 0 引言 1 基于统计域的时序特征分析 2 基于谱域的时序特征分析 3 基于时域的时序特征分析 4 代码分析 5 小结 0 引言 我们将探索时序特征分析&#xff0c;这是信号处理中的关键技术之一。信号在我们的日常生活中无处不在&#xff0c;从声音到图像&#xff0c;从传感…

无人机数据处理系统:原理与核心系统

一、数据处理系统的运行原理 数据获取&#xff1a;无人机在飞行过程中&#xff0c;通过搭载的传感器&#xff08;如相机、激光雷达等&#xff09;采集到各种类型的数据&#xff0c;例如图像、点云等。这些数据是后续处理和分析的基础。 数据传输&#xff1a;采集到的数据会通…

close and shutdown?

背景&#xff1a;我们要讲述的是网络编程中常用的两个API&#xff1a; #include <unistd.h> int close(int fd); #include <sys/socket.h> int shutdown(int sockfd, int how); 以及TCP的半连接&#xff0c;半打开。 shutdown函数的行为依赖第二个参数区分&#xf…

Java设计模式——职责链模式:解锁高效灵活的请求处理之道

嘿&#xff0c;各位 Java 编程大神和爱好者们&#xff01;今天咱们要一同深入探索一种超厉害的设计模式——职责链模式。它就像一条神奇的“处理链”&#xff0c;能让请求在多个对象之间有条不紊地传递&#xff0c;直到找到最合适的“处理者”。准备好跟我一起揭开它神秘的面纱…

Javascript中DOM事件监听 (鼠标事件,键盘事件,表单事件)

#DOM&#xff08;Document Object Model&#xff09;事件监听是一种机制&#xff0c;它允许 JavaScript 代码在 HTML 文档中的元素上监听特定的事件。当这些事件发生时&#xff0c;与之关联的 JavaScript 函数&#xff08;也称为事件处理函数&#xff09;就会被执行。这使得网页…

TiDB 无统计信息时执行计划如何生成

作者&#xff1a; weiyinghua 原文来源&#xff1a; https://tidb.net/blog/4c49ac0d 一、Pseudo 统计信息总体生成规则 TiDB 在表无统计信息时&#xff0c;不会进行动态采样&#xff0c;而是用静态的、预设规则以及经验假设来生成计划。用函数 PseudoTable 创建一个伪统…

服务器密码错误被锁定怎么解决?

当服务器密码错误多次导致账号被锁定时&#xff0c;解决方法需要根据服务器的操作系统&#xff08;如 Linux 或 Windows &#xff09;和具体服务器环境来处理。以下是常见的解决办法&#xff1a; 一、Linux 服务器被锁定的解决方法 1. 使用其他用户账号登录 如果有其他未被…

认识redis 及 Ubuntu安装redis

文章目录 一. redis概念二. redis应用场景二. redis的特性四. 使用Ubuntu安装redis 一. redis概念 redis 是在内存中存储数据的中间件, 用在分布式系统 redis是客户端服务器结构的程序, 客户端服务器之间通过网络来通信 二. redis应用场景 redis可用作数据库 类似MySQL, 但…

LabVIEW内燃机气道试验台测控系统

基于LabVIEW软件开发的内燃机气道试验台测控系统主要应用于内燃机气道的性能测试和数据分析&#xff0c;通过高精度的测控技术&#xff0c;有效提升内燃机的测试精度和数据处理能力。 项目背景 随着内燃机技术的发展&#xff0c;对其气道性能的精准测量需求日益增加。该系统通…

Rust vs Java:后端开发应该选哪个?

后端技术的发展迅速。根据JetBrains 2024年开发者调查,尽管Java仍然占据约34.5%的市场份额,但Rust在高性能应用中的应用逐渐增多。过去四年中,Rust在企业中的采用增长了240%(根据Stack Overflow 2024开发者调查)。随着组织更加注重效率和可扩展性,选择Rust还是Java已成为…

触觉智能亮相OpenHarmony人才生态大会2024

11月27日&#xff0c;OpenHarmony人才生态大会2024在武汉隆重举行。本次大会汇聚了政府领导、学术大咖、操作系统技术专家、高校及企业代表&#xff0c;围绕新时代背景下的操作系统人才培养进行了深入探讨&#xff0c;分享高校、企业在产学研融合方面的先进经验&#xff0c;全面…

springboot366高校物品捐赠管理系统(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 高校物品捐赠管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff…

深入理解AIGC背后的核心算法:GAN、Transformer与Diffusion Models

深入理解AIGC背后的核心算法&#xff1a;GAN、Transformer与Diffusion Models 前言 随着人工智能技术的发展&#xff0c;AIGC&#xff08;AI Generated Content&#xff0c;人工智能生成内容&#xff09;已经不再是科幻电影中的幻想&#xff0c;而成为了现实生活中的一种新兴力…

企业网站面临的爬虫攻击及安全防护策略

在当今数字化时代&#xff0c;企业网站不仅是展示企业形象的窗口&#xff0c;更是进行商业活动的重要平台。然而&#xff0c;企业网站在日常运营中面临着多种类型的爬虫攻击&#xff0c;这些攻击不仅会对网站的正常访问造成影响&#xff0c;还可能窃取敏感数据&#xff0c;给企…

STM32的CAN波特率计算

公式&#xff1a; CAN波特率 APB总线频率 / &#xff08;BRP分频器 1&#xff09;/ (SWJ BS1 BS2) SWJ一般为1。 例如STM32F407的&#xff0c;CAN1和CAN2都在在APB1下&#xff0c;频率是42000000 如果想配置成1M波特率&#xff0c;则计算公式为&#xff1a;