标签: #Asp.Net Core

C# Telnet ORDP 直连客户端实战:多设备并发 + 协议清洗 + 回退机制

在电信行业网络运维中,Telnet 协议直连网元是一个非常实用但容易被忽视的技术方案。本文从 SwitchData 项目出发,完整拆解一套生产级 ORDP 直连架构:SemaphoreSlim 并发限流保护网关单点、VT100+NUL+命令回显三重协议清洗、IAsyncDisposable 异步资源管理、Try-Catch 整体回退第三方平台。附带 TelnetClient.ClearPendingText、ExpectedCommandPromptCount 多阶段提示符等多个实战踩坑经验。

Swagger 多态文档实战:JsonPolymorphic + Swashbuckle oneOf 让接口继承体系一目了然

Web API 有基类+多子类的继承体系(如 ReviewBase 派生 Excel/TXT/Database 三种导入请求),Swagger 默认只展示基类导致前端看不到子类字段。本文介绍用 System.Text.Json 的 JsonPolymorphic + JsonDerivedType 特性让运行时支持多态,再配合 Swashbuckle 的 UseOneOfForPolymorphism 自动生成 OpenAPI oneOf Schema,以及手动 DocumentFilter 和自定义 OperationFilter 两种备用方案,让 Swagger UI 直接展示子类下拉选择。

C# LINQ 表达式树深度解析:手写 ORM 如何把 Where/OrderBy 翻译成数据库查询条件

EF Core 是怎么把 LINQ 翻译成 SQL 的?答案是表达式树。本文从 SwitchData 项目中 462 行的 ExpressionParser 真实代码出发,展示手写 ORM 如何把 Where/OrderBy Lambda 翻译成结构化 QueryCondition 列表:排序解析沿方法调用链向内剥离,条件解析基于 ExpressionVisitor 深度优先遍历并还原括号语义,还包含闭包变量提取、string.Contains 转 LIKE、PredicateBuilder 动态组合等核心难点的完整实现。

ASP.NET Core 过滤器(Filter)实战:从接口日志到权限管控的完整实现

本文基于 SwitchData 项目的实际代码,完整展示 ASP.NET Core 过滤器(Filter)体系的工程实践:用 IAsyncActionFilter 实现接口操作日志(反射读取 DisplayAttribute、敏感参数脱敏、Fire-and-forget 异步写库),用 NoPermissionAttribute + PermissionAttribute 双层拦截实现权限管控,以及通过自定义 IFilterProvider 动态注入过滤器。适合希望深入理解 ASP.NET Core 管道模型的开发者。

C# 显式接口实现实战:从泛型桥接到异步资源管理

显式接口实现是 C# 中一个常被忽视但极其有用的特性。本文基于 SwitchData 项目中的真实代码,通过泛型接口桥接、双 Dispose 模式、多接口共存三大实战场景,深入讲解这个特性的核心价值与应用边界,让你在遇到同名接口冲突时能优雅化解。

C# ZIP 解压安全实战:从 Zip Slip 攻击防御到 Span/stackalloc 现代性能优化

你以为解压一个 ZIP 包只是一行代码?里面藏着 Zip Slip 路径穿越漏洞、GBK/UTF-8 中文乱码、CRC 边界溢出等坑点。本文带你拆解 SwitchData 项目里的 SharpZipHelper:用 ReadOnlySpan.SplitAny 做零字符串分配解析,用 stackalloc + RandomAccess 做零堆分配 ZIP 头校验,用沙箱包含判定彻底堵死 Zip Slip,最后用 ArraySegment 把 CRC32 算得又快又准。看完你也能写一个安全、性能、编码三不误的现代 .NET 压缩工具类。