参考来自链接 https://www.cnblogs.com/CodingHiding/articles/3328362.html

using 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 System.CodeDom.Compiler;
using Microsoft.CSharp;
using System.Reflection;namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){Excute_code_1();}private void Excute_code_1(){CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider();ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler();CompilerParameters objCompilerParameters = new CompilerParameters();//添加需要引用的dllobjCompilerParameters.ReferencedAssemblies.Add("System.dll");objCompilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");//是否生成可执行文件objCompilerParameters.GenerateExecutable = false;//是否生成在内存中objCompilerParameters.GenerateInMemory = true;//编译代码CompilerResults cr = objICodeCompiler.CompileAssemblyFromSource(objCompilerParameters, textBox1.Text);if (cr.Errors.HasErrors){var msg = string.Join(Environment.NewLine, cr.Errors.Cast<CompilerError>().Select(err => err.ErrorText));MessageBox.Show(msg, "编译错误1");var msg1 = string.Join(Environment.NewLine, cr.Errors.Cast<CompilerError>().Select(err => err.ErrorNumber));MessageBox.Show(msg1, "编译错误2");var msg2 = string.Join(Environment.NewLine, cr.Errors.Cast<CompilerError>().Select(err => err.Line));MessageBox.Show(msg2, "编译错误3");}else{Assembly objAssembly = cr.CompiledAssembly;object objHelloWorld = objAssembly.CreateInstance("Test");if (objHelloWorld == null){Console.WriteLine("Instance Test is null!");return;}MethodInfo objMI = objHelloWorld.GetType().GetMethod("method_3");if (objMI == null){Console.WriteLine("the method_3 method of Instance Test can not be invoked!");return;}object[] l_args = new object[2] { 1, 2 };MessageBox.Show(objMI.Invoke(objHelloWorld, l_args).ToString());//MessageBox.Show(objMI.Invoke(objHelloWorld, new object[]{1,2}).ToString());}}private void Form1_Load(object sender, EventArgs e){init_code_1();}private void init_code_1(){textBox1.Clear();textBox1.AppendText("using System.Windows.Forms;\r\n");textBox1.AppendText("public class Test\r\n");textBox1.AppendText("{\r\n");textBox1.AppendText("   public int method_3(int a,int b)\r\n");textBox1.AppendText("   {\r\n");textBox1.AppendText("       return a + b; \r\n");textBox1.AppendText("   }\r\n");textBox1.AppendText("}\r\n");}}
}

使用 MethodInfo 调用带参数的方法相关推荐

  1. C#线程调用带参数的方法 ~

    在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法. 第一种:使用ParameterizedThreadStart. 调用 System.Threading.Thre ...

  2. java反射机制调用带参数的方法_Java反射机制:跟着代码学反射

    1. 前言 在OOP的世界里,万物皆对象.也就是说,我们可以将任何东西抽象成一个对象. 比如人,可以抽象成一个Person类,通过new Person()来实例化一个对象:再比如鸭子,可以抽象成一个D ...

  3. C#线程调用带参数的方法,给控件赋值

    System.Threading.Thread thread = new System.Threading.Thread(() => { //各种业务 //定义一个委托 public deleg ...

  4. Java 方法的概述-方法的定义-带参数的方法

    方法概述 方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集1.方法必须先创建才可以使用,该过程成为方法定义 2.方法创建后并不是直接可以运行的,需要手动使用后才执 ...

  5. JS调用后台带参数的方法

    JS调用后台带参数的方法 对于前台调用后台的方法,我们想到最多的就是用AJAX,这个是毋庸置疑的, 我就不再这里多说了.我今天主要想说的是用JS调用后台的方法. 对于后台往前台传值,用这种<%= ...

  6. 带参数的方法;导入包

    一.带参数的方法 1.语法: <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体 } 2.调用带参方法 语法:对象名.方法名(参数1,参数2. ...

  7. ASP调用带参数存储过程的几种方式

    最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法. 1. 这也是最简单的方法,两个输入参数,无返回值: set connection = server.creat ...

  8. Java基础知识之方法的通用格式、注意事项与带参数的方法

    文章目录 一.方法调用过程 二.带参数的方法 三.方法的通用格式 一.方法调用过程 1.方法定义 public static void 方法名(){//方法体 } 2.方法调用过程 图片:@黑马程序员 ...

  9. linux的 定时器传参数,JavaScript 定时器调用传递参数的方法

    JavaScript定时器调用传递参数的方法,需要的朋友可以参考下. 无论是window.setTimeout 还是window.setInterval,在使用函数名作为调用句柄时都不能带参数,而在许 ...

最新文章

  1. 简单明了!OLTP场景下的数据分布式设计原则
  2. 怎么用计算机拟合数据,数据拟合的几个应用实例-毕业论文.doc
  3. 草稿pyqt控件简单了解
  4. 「代码随想录」343. 整数拆分【动态规划】详解!
  5. apache SSL配置
  6. mysql的优化_第十一篇(查询计划篇)
  7. asp.net core 返回的Server Kestrel是什么
  8. MySQL -- 行转列 -- GROUP_CONCAT -- MAX(CASE WHEN THEN)
  9. uni —app 录音_uniapp如何实现录音功能
  10. Matlab吴恩达机器学习编程练习ex5:正则化线性回归和偏差v.s. 方差Regularized Linear Regression and Bias v.s. Variance
  11. 服务器的日常维护需要做什么?
  12. python内置函数可以返回列表、元组_Python内置函数_________可以返回列表、元组、字典、集合、字符串以及range对象中元素个数。...
  13. 学python重点是什么_如果只有1小时学Python,看这篇就够了
  14. 周礼键君:中国福建省建瓯市之《闽郡八音字典》修订版
  15. 全倒装超微间距COB(COB微间距)显示主导新型显示技术。
  16. java基础(个人笔记)
  17. HTML5 新的Input类型
  18. Qt:QTableView(01) 的用法
  19. 《Long Short-Term Memory》翻译,Sepp Hochreiter, ¨urgen Schmidhuber.1997,9(8):1735-1780
  20. 417. 太平洋大西洋水流问题(DFS)

热门文章

  1. 金庸笔下的“程序员”
  2. 新能源行业雨水除铊,污水中铊超标的解决方法
  3. Mysql查看执行计划
  4. ItemDataBound的用法
  5. 大话:边缘计算、雾计算、云计算 1
  6. Multipass,多平台本地轻量级Linux体验!
  7. 有了SonarPen压感绘图笔,接上耳机孔就可支持iPad
  8. php函数向上取整,php向上取整用什么函数
  9. (libgdx学习)ScrollPane(使用ScrollPane来创建一个横向滚动条)
  10. teamviewer锁定计算机密码,Team Viewer设置固定密码远程访问控制,不使用随机密码...