1. using System;
  2. using System.Reflection;
  3.  
  4. namespace ConsoleApp2
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //反射获取 命名空间+类名
  11. string className = "ConsoleApp2.ClassSample";
  12. string methodName = "test1";
  13. //传递参数
  14. Object[] paras = new Object[] { "我的", "电脑" };
  15. var t = Type.GetType(className);
  16. object obj = Activator.CreateInstance(t);
  17.  
  18. try
  19. {
  20. #region 方法一
  21. //直接调用
  22. MethodInfo method = t.GetMethod("test2");
  23. method.Invoke(obj, paras);
  24. #endregion
  25.  
  26. #region 方法二
  27. MethodInfo[] info = t.GetMethods();
  28. for (int i = ; i < info.Length; i++)
  29. {
  30. var md = info[i];
  31. //方法名
  32. string mothodName = md.Name;
  33. //参数集合
  34. ParameterInfo[] paramInfos = md.GetParameters();
  35. //方法名相同且参数个数一样
  36. if (mothodName == methodName && paramInfos.Length == paras.Length)
  37. {
  38. md.Invoke(obj, paras);
  39. }
  40. }
  41. #endregion
  42. }
  43. catch (Exception ex)
  44. {
  45. throw ex;
  46. }
  47. Console.ReadKey();
  48. }
  49. }
  50.  
  51. class ClassSample
  52. {
  53. public void test1(string para1)
  54. {
  55. Console.WriteLine("方式1 {0}________test111", para1);
  56. }
  57.  
  58. public void test1(string para1, string para2)
  59. {
  60. Console.WriteLine("方式2 {0}________test111________{1}", para1, para2);
  61. }
  62.  
  63. public void test2(string para1, string para2)
  64. {
  65. Console.WriteLine("方式3 {0}________test222________{1}", para1, para2);
  66. }
  67. }
  68. }

C#通过反射获取类中的方法和参数个数,反射调用方法带参数的更多相关文章

  1. PHP反射获取类中的所有常量

    <?php// Yii 2// namespace yournamespace;// use Yii; /** * 缓存辅助类 */ class CacheHelper { /** * 缓存键 ...

  2. 使用反射获取类中的属性(可用于动态返回PO类的列,当做表格的表头)

    //利用反射取类中的属性字段 try { Class clazz = Class.forName("houji.bean.model.TaskModel"); Field[] fi ...

  3. 反射获取类中的属性和set属性

    package framework.base; import java.beans.IntrospectionException; import java.beans.PropertyDescript ...

  4. php反射获取类和方法中的注释

    通过php中的反射机制,获取该类的文档注释,再通过获取其所有的方法,获取方法的注释 所用到的主要类及其方法 ReflectionClass ReflectionClass::getDocComment ...

  5. Java反射机制demo(三)—获取类中的构造函数

    Java反射机制demo(三)—获取类中的构造函数 1,获取类中所有的构造函数 如下面的代码中所示,这个类中显式的构造函数有五个. 空构造: public UserInfo() 带参构造有四个: pu ...

  6. .NET C#利用反射获取类文件以及其中的方法&属性 并获取类及方法上的特性

    了解C#特性类并声明我们自己的特性类[AttributeTest]代码如下 using System; namespace AttributeTest { /* 特性说明 特性本质是一个继承和使用了系 ...

  7. Java反射学习-1 - 反射获取类的属性,方法,构造器

    新建一个Person类 package cn.tx.reflect; /** * 注解初步了解 * @author Administrator * */ public class Person { p ...

  8. java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包

    首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; imp ...

  9. c#通过反射获取类上的自定义特性

    c#通过反射获取类上的自定义特性 本文转载:http://www.cnblogs.com/jeffwongishandsome/archive/2009/11/18/1602825.html 下面这个 ...

随机推荐

  1. vue-cli项目打包出现空白页和路径错误问题

    vue-cli项目打包: 1. 命令行输入:npm  run  build 打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目. 第一个问题,文件引用路径.我们直接运行打包后的文件夹 ...

  2. JS执行上下文(执行环境)详细图解

    JS执行上下文(执行环境)详细图解 先随便放张图 我们在JS学习初期或者面试的时候常常会遇到考核变量提升的思考题.比如先来一个简单一点的. console.log(a); // 这里会打印出什么? v ...

  3. [NOIP2016] 天天爱跑步 桶 + DFS

    ---题面--- 题解: 很久以前就想写了,一直没敢做,,,不过今天写完没怎么调就过了还是很开心的. 首先我们观察到跑步的人数是很多的,要一条一条的遍历显然是无法承受的,因此我们要考虑更加优美的方法. ...

  4. P2672 推销员 优先队列 + 贪心

    ---题面--- 题解: 我会说我想这道普及组题都想了好久么.... 不熟练的普及组选手.jpg 最后随便猜了一个结论居然是对的... 放结论: 假设x = i的最优决策为f[i], 那么f[i + ...

  5. BZOJ3140:[HNOI2013]消毒——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=3140 https://www.luogu.org/problemnew/show/P3231 最近在 ...

  6. AOJ.562 寻找罗恩和赫敏

    寻找罗恩和赫敏 考察点 水题 Time Mem Len Lang 0 492KB 0.42K G++ 题意分析 计算1/C(n,2)的值 代码总览 /* Title:AOJ.562 Author:pe ...

  7. 删边(cip)

    删边(cip) 给出一个没有重边和自环的无向图,现在要求删除其中两条边,使得图仍然保持连通. 你的任务是计算有多少组不合法的选边方案.注意方案是无序二元组. Sol 神题,无从下手啊. 考虑点dfs建 ...

  8. nfs挂载权限问题

    问题: 服务器A:192.168.10.230 服务器B:192.168.10.231 由于服务器A空间不足,打算将服务器A产生的数据库日志挂载到服务器B上,刚开始设定的anonuid和anongid ...

  9. bzoj4810 [Ynoi2017]由乃的玉米田 bitset优化+暴力+莫队

    [Ynoi2017]由乃的玉米田 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 917  Solved: 447[Submit][Status][Di ...

  10. Kubernetes - Launch Single Node Kubernetes Cluster

    Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kuberne ...