3

我正在为 CLR 脚本编写.NET On-the-Fly编译器,并希望实现下一个想法:有一个带有 C# 代码的模板文件,我想阅读它,创建一个程序集,加载它并即时放大源代码飞。我怎样才能做到这一点?

4

1 回答 1

4

您可以使用CompileAssemblyFromSource执行此操作。我过去做过类似的事情,我用静态类包装器扩充了一些脚本,以便可以轻松调用它们。你可以在这里看到它(或从中窃取)。

为此,只需加载您的模板,将您的额外放大添加到代码中,然后一次性编译它。


如果要修改现有程序集,则需要使用Mono.Cecil 之类的东西。它允许您在运行时作为程序集加载和修改。有一篇CodeProject文章使用 Reflexil,一个基于 Cecil 的 GPL 产品,它可能会帮助你获得一些想法......

于 2009-03-25T19:43:52.413 回答