我最近不得不尝试在同事不在的时候对他们的代码进行反编译,发现其中大部分看起来都非常好(感谢 ILSpy),但我们需要使用的几个地方除外dynamic
——这些被分成几个部分:
- 调用站点容器 - 即在定义中类似于类,但假设使用的方法
dynamic
是DoStuff
public /* static? I forget */ class <DoStuff>CallSiteContainer_Plus_Some_Weirdness { /* bunch of CallSite fields */ }
- 很多代码检查容器中的各种 CallSite 是否已被分配,并在使用前根据需要使用我还没有得到的方法分配它们。
我的问题是关于第一点中类声明的语法。它看起来像一个泛型类,但显然不是。谁能解释那里发生了什么?
请注意,我不是在寻找原始代码的帮助 - 我已经通过明智地使用查找和替换以及将自动生成的代码与其他所有代码分开来做到这一点。但我想了解 CallSite 容器语法如何成为有效的类名!