标签: #依赖注入

Hangfire + 工厂策略模式 + 幂等性控制:一套完整的 .NET 后台任务调度架构

基于 SwitchData 项目真实代码,讲解如何用 Hangfire 做后台任务调度,用工厂+策略模式让每种任务独立实现,用幂等性 Key 和 CAS 状态机防重复执行,用 BackgroundService 在 Worker 启动时一次性把数据库任务同步到 Hangfire。从配置、调度封装、策略接口、工厂注册到执行记录持久化,完整实现一条可扩展的后台任务链路。

C# 泛型接口显式实现:让工厂模式优雅地桥接类型差异

泛型接口IFoo<T>无法直接放进List<IFoo>,因为不同泛型参数是不同类型。本文从SwitchData项目出发,介绍如何用泛型接口显式实现(Explicit Interface Implementation)优雅地桥接泛型与非泛型世界,让工厂模式统一调度、子类享受强类型,同时集中类型转换、复用通用逻辑。

C# 表达式树深度解析:构建自定义 LINQ 条件解析器

本文深入剖析 C# 表达式树的解析机制,基于 SwitchData 项目的 ExpressionParser 实现,手把手教你构建一个将 LINQ 表达式转换为数据库查询条件的解析器。涵盖 ExpressionVisitor 访问者模式、排序解析、条件解析、逻辑分组、元数据映射、PredicateBuilder 动态组合等核心技术点。

.net8的生命周期

详解 .NET 依赖注入容器的三种生命周期:Singleton(全局单例)、Scoped(请求范围单例)、Transient(瞬态),对比注入行为、常见坑(Singleton 注入 Scoped 的陷阱)以及如何选择合适的生命周期。