从零构建 ADO.NET 抽象层:参数缓存、Schema 缓存与数据类型映射完整实现 本文基于实际项目源码,详细讲解如何从零构建一套完整的 ADO.NET 数据库抽象层。通过 Database 基类封装通用数据库操作,使用 ParameterCache 和 SchemaCache 实现参数与元数据缓存,提供 CLR 类型到 DbType 的自动映射,支持批量操作和异步调用。这套抽象层已在生产环境中运行良好,显著提升了数据库访问的性能和代码可维护性。 数据库 10 0 0 2026-08-23
ASP.NET Core 过滤器实战:操作日志记录与异步日志机制 在 ASP.NET Core 项目中,过滤器(Filter)是实现横切关注点的核心机制。本文基于 SwitchData.Api 项目的真实代码,深入剖析 ApiDbLoggingActionFilter 的实现原理,讲解异步过滤器的生命周期、敏感参数脱敏、多类型出参智能捕获、ExpandoObject 动态截断以及 fire-and-forget 异步日志写入等高级技巧。 .NET 13 0 0 2026-08-22
ASP.NET Core 请求日志中间件实战:基于 Stopwatch 的性能监控与异常追踪 本文从 SwitchData 项目提取 DisplayLoggingMiddleware,讲解如何在 ASP.NET Core 中手写请求日志中间件,实现接口耗时统计、状态码分级日志与异常追踪。通过 Endpoint 元数据读取菜单名称、Stopwatch 精确计时、静态文件过滤等技巧,不到 70 行代码即可构建生产级请求监控能力。 基础设施 11 0 0 2026-08-21
Mapster 高级映射实战:AfterMapping、条件映射与树形数据转换 本文从 SwitchData 项目提取三个真实场景,深入讲解 Mapster 的 AfterMapping 后映射钩子、Map 条件映射和 MapWith 自定义映射函数,最后展示如何将扁平数据一键转为树形结构。三种映射方式各有定位:Map 处理属性级类型转换,AfterMapping 处理对象级后置逻辑,MapWith 处理结构级整体变换。 .NET 10 0 0 2026-08-20
表达式树解析:从 LINQ 到 SQL 的迷你 ORM 实现 深入 C# 表达式树(Expression Tree)的解析原理,使用 ExpressionVisitor 模式从零实现一个迷你版 LINQ-to-SQL 方案,包括元数据映射、条件解析、排序解析、动态 PredicateBuilder 组合,以及编译表达式树生成高性能访问器的完整实战。 .NET 30 0 0 2026-08-19