Mapster 是 .NET 生态中高性能的对象映射库。本文以 SwitchData 项目为例,讲解 Mapster 的集中式配置、字段映射、AfterMapping 后处理、MapWith 自定义转换等核心用法,并演示如何将扁平列表映射为前端所需的树形结构。
分类: .NET
本文从 SwitchData 项目提取一套轻量级权限方案:通过 NoPermissionAttribute 实现控制器默认拒绝,PermissionAttribute 完成方法级权限码校验,再用自定义 IFilterProvider 精确控制过滤器执行顺序,适合按钮级、动态变化的细粒度权限场景。
在 ASP.NET Core 项目中,过滤器(Filter)是实现横切关注点的核心机制。本文基于 SwitchData.Api 项目的真实代码,深入剖析 ApiDbLoggingActionFilter 的实现原理,讲解异步过滤器的生命周期、敏感参数脱敏、多类型出参智能捕获、ExpandoObject 动态截断以及 fire-and-forget 异步日志写入等高级技巧。
本文从 SwitchData 项目提取三个真实场景,深入讲解 Mapster 的 AfterMapping 后映射钩子、Map 条件映射和 MapWith 自定义映射函数,最后展示如何将扁平数据一键转为树形结构。三种映射方式各有定位:Map 处理属性级类型转换,AfterMapping 处理对象级后置逻辑,MapWith 处理结构级整体变换。
深入 C# 表达式树(Expression Tree)的解析原理,使用 ExpressionVisitor 模式从零实现一个迷你版 LINQ-to-SQL 方案,包括元数据映射、条件解析、排序解析、动态 PredicateBuilder 组合,以及编译表达式树生成高性能访问器的完整实战。
本文通过手写 ExpressionVisitor 实现 LINQ 表达式树到 SQL 查询条件的完整转换链路,涵盖排序解析、条件构建、逻辑分组、闭包变量提取等核心技术点。
泛型接口IFoo<T>无法直接放进List<IFoo>,因为不同泛型参数是不同类型。本文从SwitchData项目出发,介绍如何用泛型接口显式实现(Explicit Interface Implementation)优雅地桥接泛型与非泛型世界,让工厂模式统一调度、子类享受强类型,同时集中类型转换、复用通用逻辑。
本文结合实际项目经验,深入讲解如何在 ASP.NET Core 中使用 Hangfire 构建完整的定时任务调度系统。涵盖环境配置、持久化存储、调度器实现、执行器工厂模式、幂等性保障、后台 Worker 服务等核心主题,提供完整的代码实现和最佳实践。
本文深入剖析 C# 表达式树的解析机制,基于 SwitchData 项目的 ExpressionParser 实现,手把手教你构建一个将 LINQ 表达式转换为数据库查询条件的解析器。涵盖 ExpressionVisitor 访问者模式、排序解析、条件解析、逻辑分组、元数据映射、PredicateBuilder 动态组合等核心技术点。
本文基于生产级项目 SwitchData 的加密模块,系统讲解 C# 中 RSA 分块加密、AES 对称加密、MD5 哈希签名的完整实现方案,涵盖密钥管理、缓存策略、API 签名校验 Filter 集成等实战内容。