基于 SwitchData 项目真实代码,讲解如何用 Hangfire 做后台任务调度,用工厂+策略模式让每种任务独立实现,用幂等性 Key 和 CAS 状态机防重复执行,用 BackgroundService 在 Worker 启动时一次性把数据库任务同步到 Hangfire。从配置、调度封装、策略接口、工厂注册到执行记录持久化,完整实现一条可扩展的后台任务链路。
标签: #依赖注入
本文结合 SwitchData 项目中的 ExpressionParser 实现,介绍如何通过 C# 表达式树把强类型的 LINQ Where 表达式解析成结构化查询条件,实现安全的动态 SQL 生成。
在通信设备日志采集场景中,来自不同厂商的设备输出格式各异(华为 MML 命令行、PGW SAAC XML-like 结构等),本文展示如何用策略+工厂+模板方法三种经典设计模式组合出一套可扩展的日志解析架构。
泛型接口IFoo<T>无法直接放进List<IFoo>,因为不同泛型参数是不同类型。本文从SwitchData项目出发,介绍如何用泛型接口显式实现(Explicit Interface Implementation)优雅地桥接泛型与非泛型世界,让工厂模式统一调度、子类享受强类型,同时集中类型转换、复用通用逻辑。
本文深入剖析 C# 表达式树的解析机制,基于 SwitchData 项目的 ExpressionParser 实现,手把手教你构建一个将 LINQ 表达式转换为数据库查询条件的解析器。涵盖 ExpressionVisitor 访问者模式、排序解析、条件解析、逻辑分组、元数据映射、PredicateBuilder 动态组合等核心技术点。
详解 .NET 依赖注入容器的三种生命周期:Singleton(全局单例)、Scoped(请求范围单例)、Transient(瞬态),对比注入行为、常见坑(Singleton 注入 Scoped 的陷阱)以及如何选择合适的生命周期。
1 / 1