Tag: 反射
All the articles with the tag "反射".
-
DI 容器内部怎么用反射:从 55 行手写容器到 IServiceCollection
Published: | at 12:23 AM DI 容器的魔法就是反射。本文从 GetConstructors → GetParameters → Resolve → Invoke 的递归循环讲起,用 55 行 C# 实现一个最小容器,再拆解 IServiceCollection 和 Scrutor 的内部机制,最后介绍源生成器如何在编译期消除反射。
-
C# 表达式树替代反射:何时该做性能升级
Published: | at 12:00 PM 反射每次调用都要重新验证、分派、装箱;表达式树把这些开销压缩到一次性的编译步骤,之后每次调用都是原生委托速度。本文介绍属性读写、构造工厂、方法调用四个场景的完整实现,以及一个泛型对象映射器示例,帮你判断什么时候该切换。
-
-
C# 反射:.NET 10 完全指南
Published: | at 01:52 AM 从 System.Reflection 核心 API 到性能优化,再到何时该换用源生成器或 [UnsafeAccessor]——一篇帮你真正用好 C# 反射的完整指南。
-
C# 反射反模式:8 个会伤害你应用的错误
Published: | at 12:20 AM 反射是 .NET 最强大的工具之一,但 8 种常见误用会带来性能悬崖、AOT 兼容性问题和难以排查的 bug。本文梳理这 8 个反模式及其修复方案,涵盖热路径缓存、编译委托、[UnsafeAccessor]、[DynamicallyAccessedMembers] 和源生成器。
-
用 Portable PDB 在运行时获取方法的源码位置
Published: | at 12:00 AM CallerFilePath 只能在编译期拿到调用点的位置,如果你想在运行时拿到任意方法的源文件路径和行号,Portable PDB 提供了另一条路。本文用 System.Reflection.Metadata 演示完整实现。