反思。在CCI

时间:2016-08-08 18:55:51

标签: c# reflection.emit cci

Eric Lippert has said on the record here at SO

  

Reflection.Emit太弱,无法用于构建真正的编译器。这对于小型玩具编译任务非常有用,例如在LINQ查询中发出动态调用站点和表达式树,但是对于各种各样的问题你在编译器中面对你将很快超出其能力。使用CCI,而不是Reflection.Emit。

我有一个真正的编译器,很遗憾在Reflection.Emit上构建(不是我)。它正在痛苦地抵御这些限制,我想将发射代码转换为CCI。我找到了一些似乎没有任何等价的东西。

例如,行:

        _asmBuilder.DefineVersionInfoResource();

        _moduleBuilder.CreateGlobalFunctions(); //setup global .data

我认为没有办法做同样的事情,特别是因为我找不到任何与ModuleBuilder等效的东西。

是否有任何关于如何将Reflection.Emit项目转换为CCI的良好参考或文档?

0 个答案:

没有答案