基于 SwitchData 项目真实代码,讲解如何用 Hangfire 做后台任务调度,用工厂+策略模式让每种任务独立实现,用幂等性 Key 和 CAS 状态机防重复执行,用 BackgroundService 在 Worker 启动时一次性把数据库任务同步到 Hangfire。从配置、调度封装、策略接口、工厂注册到执行记录持久化,完整实现一条可扩展的后台任务链路。
标签: #Asp.Net Core
ASP.NET Core 默认使用 System.Text.Json 做 JSON 序列化,但日期格式化、字符串 Trim、DataTable 桥接这些常见需求需要自己实现 Converter。本文基于 SwitchData 项目,从 DateTimeJsonConverter、TrimStringJsonConverter 到 DataTableJsonConverter,再到 JsonConverterFactory 消除重复、JsonHelper 统一双序列化器入口,手把手实现一套完整的自定义 Converter 体系。
本文结合 SwitchData 项目真实代码,介绍 .NET 下 Mapster 对象映射库的全局配置、AfterMapping、Map、MapWith 等实战技巧,并演示如何用 MapWith 把扁平列表映射为复杂树形结构。适合想用 Mapster 替代 AutoMapper 的开发者。
在 SwitchData 项目中,我们对 IEnumerable<T> 做了一系列高质量的扩展方法——IsNullOrEmpty 的四级短路优化、双指针对比算法、.NET 9 CollectionsMarshal 高性能去重。本文逐个拆解这些方法的设计思路和性能考量。
从 SwitchData 项目的 ExpressionParser 出发,手把手拆解如何把 LINQ 表达式树拆解成结构化查询条件。详解 ExpressionVisitor 遍历、闭包常量提取、运算符反转、括号分组还原,以及 MetadataCache 元数据缓存和 PredicateBuilder 动态表达式组合,读完就能手写一个轻量 LINQ Provider。
在网络设备管理中,通过 Telnet 连接交换机、路由器发送命令是常见需求。本文基于 SwitchData 项目的真实实现,讲解如何用 C# 从零实现一个完整的 Telnet 客户端,涵盖 Socket BeginConnect 异步超时、Telnet IAC 协商命令自动响应(DO/DONT/WILL/WONT)、子协商(终端类型 VT100 + 窗口大小)、同步 Read 与异步事件回调两种工作模式、以及连接存活检测技巧。
深入讲解如何利用 C# 表达式树(Expression Tree)编译技术,把反射式的属性访问编译成原生委托。本文从 SwitchData 项目的 MetadataCache.CreateGetter/CreateSetter 真实代码出发,手把手实现一个并发安全的 ConcurrentDictionary + 编译缓存方案,让 ORM 对象映射性能达到接近直接调用的水平。
本文结合 SwitchData 项目中的 ExpressionParser 实现,介绍如何通过 C# 表达式树把强类型的 LINQ Where 表达式解析成结构化查询条件,实现安全的动态 SQL 生成。
深入 SwitchData 项目源码,逐行剖析生产级表达式解析器实现:从 OrderBy 链式排序解析、自定义 ExpressionVisitor 处理 Where 条件、括号分组算法、闭包常量值提取,到 PredicateBuilder 动态拼接表达式,构建通用数据访问层的瑞士军刀。
本文从 SwitchData 项目提取一套轻量级权限方案:通过 NoPermissionAttribute 实现控制器默认拒绝,PermissionAttribute 完成方法级权限码校验,再用自定义 IFilterProvider 精确控制过滤器执行顺序,适合按钮级、动态变化的细粒度权限场景。
1 / 3
下一页