我正在写 .NET On-the-Fly用于 CLR 脚本的编译器并想实现下一个想法:有一个带有 C# 代码的模板文件,我想读取它,创建一个程序集,加载它并即时放大源代码。我怎样才能做到这一点?
最佳答案
您可以使用 CompileAssemblyFromSource 执行此操作.我过去做过一些类似的事情,我用静态类包装器增加了一些脚本,这样它们就可以很容易地被调用。你可以see it (or steal from it) here.
为此,只需加载您的模板,将您的额外放大添加到代码中,然后一次性编译它。
如果你想修改一个现有的程序集,你需要使用像Mono.Cecil这样的东西。 .它允许您在运行时加载和修改程序集。有一个CodeProject使用基于 Cecil 的 GPL 产品 Reflexil 的文章,可能会帮助您获得一些想法...
关于c# - 加载程序集并更改源代码,这可能吗?如何做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/683109/