C#动态编译并执行代码
2021-02-14 21:20
标签:text 编译参数 result pre dll .json new nan linq 先来张运行时截图: https://www.cnblogs.com/nanfei/p/6046128.html http://www.cnblogs.com/feigao/p/6197167.html C#动态编译并执行代码 标签:text 编译参数 result pre dll .json new nan linq 原文地址:https://www.cnblogs.com/chuancheng/p/8444566.htmlusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.CSharp;
using System.CodeDom.Compiler;
using System.Reflection;
namespace CSharpDynamicCode
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnRun_Click(object sender, EventArgs e)
{
run();
}
void run()
{
CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider();
ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler();
CompilerParameters objCompilerParameters = new CompilerParameters();
//添加需要引用的dll
objCompilerParameters.ReferencedAssemblies.Add("System.dll");
objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
//是否生成可执行文件
objCompilerParameters.GenerateExecutable = false;
//是否生成在内存中
objCompilerParameters.GenerateInMemory = true;
//编译代码
CompilerResults cr = objICodeCompiler.CompileAssemblyFromSource(objCompilerParameters, txtCode.Text);
if (cr.Errors.HasErrors)
{
var msg = string.Join(Environment.NewLine, cr.Errors.Cast
///