接口审计日志选中间件还是 ActionFilter?中间件拿不到绑定后的参数和返回值,IAsyncActionFilter 正好卡在两者之间。本文基于真实项目代码,拆解 DisplayAttribute 生成双语操作名、入参敏感字段脱敏、出参反射递归截断、fire-and-forget 异步落库四大实现要点,并总结未观察异常、白名单跳过等踩坑细节。
标签: #Asp.Net Core
从控制器出口到上游读取,完整拆解 ASP.NET Core SSE 流式接口的落地实现:IAsyncEnumerable 的异步迭代器契约、ResponseHeadersRead 让流式真正生效、Content-Type 嗅探与降级、阶段推进式 JSON 行解析,以及取消传播、资源释放与落库时机,最后附 11 条踩坑清单。
连接字符串散落在 appsettings.json 与 App.config 之间?本文基于 SwitchData 项目的 DbConnectionManager,用 Interlocked.Exchange 实现无锁一次性初始化,volatile 双检锁保证回退加载的线程安全,ConcurrentDictionary 缓存解密后的连接串,解密收口在单一方法,并配套 WaitForReadyAsync 异步重试等待数据库就绪。完整代码 + 讲解,一套可以直接抄走的静态管理类设计。
枚举转中文描述是业务系统刚需,但每次 ToString 加反射读 DescriptionAttribute 会拖慢高频接口。本文基于 SwitchData 项目的 EnumExtensions 实现,拆解泛型静态类 EnumCache<T> 的独立静态字段缓存原理、.NET 8 FrozenDictionary 的读优化特性,以及 (MyEnum)999 未定义枚举值的防御式处理,让枚举反射只跑一次。
System.Text.Json 默认行为无法满足统一日期格式、字符串自动 Trim、DataTable 序列化等业务需求。本文基于真实项目实现,完整讲解 JsonConverter 基础写法、可空类型转换陷阱、DataTable 与 Newtonsoft 桥接、JsonConverterFactory 工厂模式,并总结六大常见踩坑点。
在电信行业网络运维中,Telnet 协议直连网元是一个非常实用但容易被忽视的技术方案。本文从 SwitchData 项目出发,完整拆解一套生产级 ORDP 直连架构:SemaphoreSlim 并发限流保护网关单点、VT100+NUL+命令回显三重协议清洗、IAsyncDisposable 异步资源管理、Try-Catch 整体回退第三方平台。附带 TelnetClient.ClearPendingText、ExpectedCommandPromptCount 多阶段提示符等多个实战踩坑经验。
Web API 有基类+多子类的继承体系(如 ReviewBase 派生 Excel/TXT/Database 三种导入请求),Swagger 默认只展示基类导致前端看不到子类字段。本文介绍用 System.Text.Json 的 JsonPolymorphic + JsonDerivedType 特性让运行时支持多态,再配合 Swashbuckle 的 UseOneOfForPolymorphism 自动生成 OpenAPI oneOf Schema,以及手动 DocumentFilter 和自定义 OperationFilter 两种备用方案,让 Swagger UI 直接展示子类下拉选择。
EF Core 是怎么把 LINQ 翻译成 SQL 的?答案是表达式树。本文从 SwitchData 项目中 462 行的 ExpressionParser 真实代码出发,展示手写 ORM 如何把 Where/OrderBy Lambda 翻译成结构化 QueryCondition 列表:排序解析沿方法调用链向内剥离,条件解析基于 ExpressionVisitor 深度优先遍历并还原括号语义,还包含闭包变量提取、string.Contains 转 LIKE、PredicateBuilder 动态组合等核心难点的完整实现。
AsyncLocal<T> 是 .NET 异步编程中被低估的基础设施。本文通过 SwitchData 项目的完整实战,展示如何用 AsyncLocal 在请求管道中自动传递用户上下文,解释它与 ThreadLocal、ExecutionContext 的关系,并总结常见坑点与最佳实践。
本文基于 SwitchData 项目的实际代码,完整展示 ASP.NET Core 过滤器(Filter)体系的工程实践:用 IAsyncActionFilter 实现接口操作日志(反射读取 DisplayAttribute、敏感参数脱敏、Fire-and-forget 异步写库),用 NoPermissionAttribute + PermissionAttribute 双层拦截实现权限管控,以及通过自定义 IFilterProvider 动态注入过滤器。适合希望深入理解 ASP.NET Core 管道模型的开发者。
1 / 5
下一页