运行时动态将字符串编译为C#可执行代码

private void button1_Click(object sender, EventArgs e)
        {
            CSharpCodeProvider CSharp = new CSharpCodeProvider();

            String[] dll = { "System.dll", "System.Windows.Forms.dll" };

            CompilerParameters 编译参数 = new CompilerParameters(dll);

            编译参数.GenerateExecutable = false;

            编译参数.GenerateInMemory = true;

            string 代码串 = this.textBox1.Text;

            CompilerResults 结果 = CSharp.CompileAssemblyFromSource(编译参数, 代

码串);

            Assembly 程序集 = 结果.CompiledAssembly;

            object 动态对象 = 程序集.CreateInstance("wxd");

            MethodInfo 方法 = 动态对象.GetType().GetMethod("setText");

            object[] 参数 = { this.button1 };

            object s = 方法.Invoke(动态对象, 参数);

            System.Console.WriteLine(s);

        }

  

转载于:https://www.cnblogs.com/marslin/p/3979480.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值