阿Y博客

上辈子作恶多端,这辈子Chsarp后端
文章发布热力图
一 三 五
少
多
C# 连接字符串集中管理实战:Interlocked 原子守卫 + volatile 双检锁 + 异步重试

C# 连接字符串集中管理实战:Interlocked 原子守卫 + volatile 双检锁 + 异步重试

连接字符串散落在 appsettings.json 与 App.config 之间?本文基于 SwitchData 项目的 DbConnectionManager,用 Interlocked.Exchange 实现无锁一次性初始化,volatile 双检锁保证回退加载的线程安全,ConcurrentDictionary 缓存解密后的连接串,解密收口在单一方法,并配套 WaitForReadyAsync 异步重试等待数据库就绪。完整代码 + 讲解,一套可以直接抄走的静态管理类设计。
.NET 3 0 0
C# 动态查询条件构建实战:组合模式 + 运算符注册表 + 参数化 SQL 防注入完整方案

C# 动态查询条件构建实战:组合模式 + 运算符注册表 + 参数化 SQL 防注入完整方案

多可选参数查询接口还在用字符串拼接 SQL?本文拆解一套组合模式动态查询条件构建器:FilterCondition 叶子节点 + FilterGroup 逻辑组把 WHERE 子句建模成对象树,17 种运算符全部注册到一张声明式注册表,递归遍历时参数编号贯穿全树递增,值走 DbParameter、列名走元数据白名单校验,从根上堵死注入路径,并逐一讲清 LIKE 通配符转义、NULL 三值逻辑、空条件跳过等容易踩的坑。
.NET 2 0 0
C# SSH 自动化实战:ShellStream 交互式命令执行 + Expect 提示符等待

C# SSH 自动化实战:ShellStream 交互式命令执行 + Expect 提示符等待

SSH.NET 的 RunCommand 每次都会新开 exec 通道,命令之间不共享上下文。本文基于真实网元运维代码,拆解 ShellStream 交互式命令执行的完整方案:CreateShellStream 创建伪终端、Expect 模式循环读流并等待提示符、两条正则清洗退格序列与 ANSI 颜色码,以及登录 banner 排干、logout 收尾等实战细节,并给出异步化与超时细分的演进方向。
.NET 3 0 0
C# 枚举元数据缓存实战:泛型静态类 + .NET 8 FrozenDictionary 让反射只跑一次

C# 枚举元数据缓存实战:泛型静态类 + .NET 8 FrozenDictionary 让反射只跑一次

枚举转中文描述是业务系统刚需,但每次 ToString 加反射读 DescriptionAttribute 会拖慢高频接口。本文基于 SwitchData 项目的 EnumExtensions 实现,拆解泛型静态类 EnumCache<T> 的独立静态字段缓存原理、.NET 8 FrozenDictionary 的读优化特性,以及 (MyEnum)999 未定义枚举值的防御式处理,让枚举反射只跑一次。
.NET 4 0 0
SQL Server 批量核对查询实战:临时表 + SqlBulkCopy + JOIN 一次比对十万级数据

SQL Server 批量核对查询实战:临时表 + SqlBulkCopy + JOIN 一次比对十万级数据

批量核对场景下循环单条查询会带来 N+1 网络往返,IN 列表又受 2100 个参数上限约束。本文基于真实落地的 BulkQueryData 实现,拆解「临时表 + SqlBulkCopy + JOIN」方案:SELECT INTO WHERE 1=2 结构克隆与 identity 列处理、行号列回传技巧、NULL 空值等价匹配条件、统计回填与 try/finally 幂等清理,万行级核对从分钟级降到秒级。
数据库 9 0 0