C#动态编译、执行代码

谁说我不能喝 提交于 2020-04-04 07:47:14

在开始之前,先熟悉几个类及部分属性、方法:CSharpCodeProviderICodeCompilerCompilerParametersCompilerResultsAssembly

一、CSharpCodeProvider
提供对C#代码生成器和代码编译器的实例的访问。如果要动态生成VB代码,可以使用VBCodeProvider

CreateCompiler():获取编译器的实例。

二、ICodeCompiler
定义用于调用源代码编译的接口或使用指定编译器的CodeDOM树。每种编译方法都接受指示编译器的CompilerParameters对象,并返回指示编译结果的CompilerResults对象。

CompilerAssemblyFromSource(CompilerParameters option, string source):使用指定的编译器,从包含源代码的字符串设置编译程序集。

三、CompilerParameters
表示用于调用编译器的参数。

ReferencedAssemblies:获取当前项目所引用的程序集。Add方法为程序集添加引用。
GenerateExecutable:获取或设置一个值,该值指示是否生成可执行文件。若此属性为false,则生成DLL,默认是false。
GenerateInMemory:获取或设置一个值,该值指示是否在内存中生成输出。

四、CompilerResults
表示从编译器返回的编译结果。

CompiledAssembly:获取或设置以编译的程序集,Assembly类型。

大致了解以上知识之后,就可以使用C#动态的编译并执行代码了,以下是一段示例程序:

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!