一、环境准备(新建 .NET Web API) 先安装所有需要的 NuGet 包: 必装包 # AOP 核心 Install-Package Autofac Install-Package Autofac.Extras.DynamicProxy Install-Package Microsoft.E ...
一、先安装必需 NuGet 包 # API版本控制 Install-Package Microsoft.AspNetCore.Mvc.Versioning Install-Package Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer # JWT In ...
一、.NET Web API 是什么 ASP.NET Web API 是微软用于构建 HTTP 服务 的框架,专门用来开发: 前后端分离接口 移动端 API 微服务接口 它基于 Controller + Action 模式,返回 JSON/XML 数据,不返回页面。 二、路由(Routing) 路由 ...
一、请求处理管道(Pipeline) 1. 是什么? ASP.NET Core 处理 HTTP 请求的一条流水线。 请求进来 → 依次经过多个中间件 → 响应返回。 2. 核心特点 单向进入,双向返回 请求:从上到下执行中间件 响应:从下到上原路返回 顺序至关重要 先注册的中间件先执行 可短 - c ...
一、内存基础:栈 vs 堆 C# 把内存分成两块核心区域,分配规则完全不同,这是理解 GC 的前提。 1. 栈内存 (Stack) 存放内容:值类型(int、bool、struct)、引用类型变量的引用地址 特点: 自动分配、自动释放(方法执行完立刻释放) 速度极快,无需 GC 管理 大小固定,空间 ...
一、核心 Task:代表一个尚未完成的操作(可以是异步、也可以是同步) async/await:语法糖,让异步代码写得像同步 本质:await 时挂起方法,释放线程;操作完成后恢复执行 二、Task 到底是什么? 1. Task 不是线程 很多人误区: “启动一个 Task 就开一个线程。” 错。 ...
一、委托(Delegate):C# 的「函数指针」,方法的容器 1. 核心定义 委托是存储方法引用的类型,可以把方法当作参数传递、赋值、调用,实现解耦 + 回调。 2. 基础语法 // 1. 定义委托(匹配方法的返回值+参数) public delegate int CalcDelegate(int ...
一、C# 类型体系总览 C# 所有类型最终都属于两大分类: 值类型(Value Type) 引用类型(Reference Type) 所有类型都继承自 object(System.Object)。 二、值类型 vs 引用类型(核心区别) 1. 定义 值类型:数据直接存在栈上,变量本身就是数据。 引用 ...
【结对编程作业】408 基础知识在线考试系统设计与实现 结对信息: 编码者:2452925 审核者:2452927 项目: 408基础知识在线考试系统 开发环境:idea 前端: HTML + CSS + JavaScript(前端本地存储实现) 后端: java 一、项目概述 本项目为408 计算 ...
在实际开发中,程序的核心是处理数据,它将收集到的数据进行加工处理等计算,再将结果呈现到软件页面上。所以系统不仅向用户展示数据,还会从用户收集数据,以实现双向交互(接收-处理-反馈)的闭环。程序与用户的交互,离不开事件的帮助,事件就像是程序与用户之间的桥梁,实现双方的完美对接。今天我们以一些简单的小例 ...
通过前两篇文章的学习,已经对基于.NET的Windows窗体编程有了初步认识,可以独立的创建应用程序。然而在实际应用开发中,软件能否吸引用户,除了实现必需的功能以外,UI布局设计也很重要,如整体风格,操作便捷性,以及符合大部分人的使用习惯等,合理的布局不仅可以有效利用空间,还能提高软件使用效率。今天 ...
在前一篇文章《基于.NET的Windows窗体编程之WinForms入门简介》中,我们了解到了Windows窗体编程在如何创建程序,Form页面相关属性和事件,以及如何启动调试程序,今天继续介绍基于.NET的Windows窗体编程中的控件部分,控件是Windows窗体编程过程中常用且十分重要的内容, ...
最早发明计算机主要是用于科学计算,利用计算机的高速运算能力代替人工计算以提高效率,应用范围主要集中在科学工作者以及专业从业人员那一小撮人群,那时侯的使用者主要关注数据,通常使用控制台操作计算并显示结果。而真正的让计算机由高端产品走进大众视野,则要从GUI程序的出现开始,它让程序从枯燥刻板的黑窗口进入 ...
在之前的磁盘管理技术选型中,我们讨论了磁盘操作的四种方案(PowerShell / Diskpart / WMI / Win32 IOCTL)以及各自的环境依赖问题。本文聚焦BitLocker加密操作,同样面临类似的技术选型问题 在企业级网络磁盘产品中,VHDX虚拟磁盘镜像通常需要BitLocker ...
上文异常处理用到了日志记录器,本文介绍一下基于Sqlite的日志记录器 一、定义一个传递、保存日志的类 public class LogItem { public int Id { get; set; } public string DT { get; set; } = default!; publ ...
前言 新的一年开始了,公司提了新的要求: 国产化 国际化 开发部的应对是:从wpf转换Maui: 安卓版也是国产化 国际化就是本地化,弄个多国语言的事情 话说华为的鸿蒙,为了国产化,在华为P40手机上运行了Maui的缺省项目,天真的以为鸿蒙支持Maui Android。于是去买了个华为的平板,然后悲 ...
使用SqlSugar读取Sqlite数据库,项目运行过程中间歇性抛出以下异常: SqlSugar.SqlSugarException:“中文提示 : 连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Connection was closed, statement was t ...
公司现有项目使用了LiteDB作为本地数据存储,但每次开机有较高的概率读取阻塞。 因为死锁或者损坏导致的阻塞问题,目前只能设置超时。在db读取超时后,部分情况可以删除文件、重建db解决,也有无法删除db文件的情况。 导致的技术债务造成了非常多的冗余维护工作量,需要基于常用的数据库及使用方式,重新做个 ...
默认情况下的 Microsoft Agent Framework 是没有将 DeepSeek 思考内容提供出来的。官方给出的原因是当前 OpenAI 提供的 API 还没有将 reasoning_content 放开。好在 Microsoft Agent Framework 也没有堵住获取思考内容的... ...
随着AI技术的发展,图像识别技术应用越来越广泛,OCR(Optical Character Recognition,光学字符识别)技术做为图像识别技术的应用场景之一,广泛的应用于零售,政务,工业,金融等领域,如车牌号识别,身份证识别等。今天以一个简单的小例子,简述在.NET开发中,如何利用第三方OC... ...