C# 如何实现特性的自动反射?

2020-07-03 20:51发布

C# 的特性是配合反射用的,平时我往往只是把特性当成附加标签的功能,而一些项目似乎有更高级的用法。

比如 Fody 旗下的诸多项目。添加了特性后,产生了魔法效果,我并没有看到对应的反射代码,那特性是如何起作用的呢?

3条回答
萌系小妹纸
2楼-- · 2020-07-03 21:04

除了反射,还有一种方式 emit

查看更多
混吃等死
3楼-- · 2020-07-03 21:14

Fody 不是什么反射哈,比反射还高级,是代码注入,相当于把IL改了。如果反射都能办到,我还用什么Fody。

查看更多
老娘就宠你
4楼-- · 2020-07-03 21:16

Fody是好像通过扩展编译器实现的,在编译期反射并生成相关结果,可以认为是反射代码在Fody自身的编译器中。

查看更多
登录 后发表回答