0条评论
还没有人评论过~
C# 的特性是配合反射用的,平时我往往只是把特性当成附加标签的功能,而一些项目似乎有更高级的用法。
比如 Fody 旗下的诸多项目。添加了特性后,产生了魔法效果,我并没有看到对应的反射代码,那特性是如何起作用的呢?
Fody 不是什么反射哈,比反射还高级,是代码注入,相当于把IL改了。如果反射都能办到,我还用什么Fody。
除了反射,还有一种方式 emit
Fody是好像通过扩展编译器实现的,在编译期反射并生成相关结果,可以认为是反射代码在Fody自身的编译器中。