C# 反射表达式微型 ORM:MetadataCache 元数据驱动的 CRUD 实现 本文基于 SwitchData 项目的实际代码,讲解如何从零构建一个基于反射表达式的微型 ORM。通过 MetadataCache 实现元数据驱动,使用表达式树编译强类型 Getter/Setter 委托替代反射调用,性能接近直接调用。实现 INSERT/UPDATE/DELETE 的 SQL 自动生成、ObjectMapper 对象映射、实体验证机制等完整功能,无需依赖任何第三方 ORM 框架。 .NET 5 0 0 2026-08-28
C# 位运算实战:把任意 IP 段拆成最少的 CIDR 块 在 SwitchData 项目做 UPF 地址分配时遇到一个经典问题:把任意 IP 段(10.0.0.5 ~ 10.0.0.250 这种不规整的)拆成最少的 CIDR 块。本文用 UInt128 + 位运算写出一套同时支持 IPv4 和 IPv6 的通用解法,核心是 CountTrailingZeros + 贪心算法。 .NET 4 0 0 2026-08-27
Mapster 对象映射实战:从简单映射到复杂树形结构转换 Mapster 是 .NET 生态中高性能的对象映射库。本文以 SwitchData 项目为例,讲解 Mapster 的集中式配置、字段映射、AfterMapping 后处理、MapWith 自定义转换等核心用法,并演示如何将扁平列表映射为前端所需的树形结构。 .NET 5 0 0 2026-08-26
ASP.NET Core 权限过滤器实战:默认拒绝 + IFilterProvider 顺序控制 本文从 SwitchData 项目提取一套轻量级权限方案:通过 NoPermissionAttribute 实现控制器默认拒绝,PermissionAttribute 完成方法级权限码校验,再用自定义 IFilterProvider 精确控制过滤器执行顺序,适合按钮级、动态变化的细粒度权限场景。 .NET 8 0 0 2026-08-24
从零构建 ADO.NET 抽象层:参数缓存、Schema 缓存与数据类型映射完整实现 本文基于实际项目源码,详细讲解如何从零构建一套完整的 ADO.NET 数据库抽象层。通过 Database 基类封装通用数据库操作,使用 ParameterCache 和 SchemaCache 实现参数与元数据缓存,提供 CLR 类型到 DbType 的自动映射,支持批量操作和异步调用。这套抽象层已在生产环境中运行良好,显著提升了数据库访问的性能和代码可维护性。 数据库 3 0 0 2026-08-23