C# 利用反射调用类下的方法

  1. namespace TestReflection
  2. {
  3. public partial class Form1 : Form
  4. {
  5. public Form1()
  6. {
  7. InitializeComponent();
  8. }
  9. private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
  10. {
  11. string MethodName = comboBoxEdit1.SelectedItem.ToString();
  12. TestMethod(MethodName, MethodName);
  13. }
  14. /// <summary>
  15. /// 反射调用类中的方法
  16. /// </summary>
  17. /// <param name="MethodName"></param>
  18. /// <param name="Text"></param>
  19. private void TestMethod(string MethodName, string Text)
  20. {
  21. try
  22. {
  23. ////    1.Load(命名空间名称),GetType(命名空间.类名)
  24. Type type = Assembly.Load("TestReflection").GetType("TestReflection.Test");
  25. ////    2.GetMethod(需要调用的方法名称)
  26. MethodInfo method = type.GetMethod(MethodName);
  27. ////    3.调用的实例化方法(非静态方法)需要创建类型的一个实例
  28. object obj = Activator.CreateInstance(type);
  29. ////    4.方法需要传入的参数
  30. object[] parameters = new object[] { this, Text };
  31. ////    5.调用方法,如果调用的是一个静态方法,就不需要第3步(创建类型的实例)
  32. ////      相应地调用静态方法时,Invoke的第一个参数为null
  33. method.Invoke(obj, parameters);
  34. }
  35. catch
  36. {
  37. }
  38. }
  39. }
  40. }
上一篇:Java基础反射-调用类


下一篇:给C++初学者的50个忠告(好文转载)