c# - 加载程序集并更改源代码,这可能吗?如何做?

标签 c# .net reflection assemblies on-the-fly

我正在写 .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/

相关文章:

c# - 在 C# 中将控制台窗口置于最前面

.net - SQL Server 数据库可以在事务期间应答吗?

c# - 使用不带参数的 "params"关键字使用反射调用方法

C# 反射 : How to get the type of a Nullable<int>?

java - scala反射错误java

c# - 保存计时器高分

c# - WinForms 应用程序的体系结构?

c# - 当 Gen2 中存在大量对象时,使用 WinDbg 查找内存泄漏

c# - 如何在更新面板 Asp.net C# 中保持滚动位置?

c# - Xamarin ScrollView 应该跳到底部