C# 利用反射调用类下的方法
2024-08-20 06:18:48
- namespace TestReflection
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
- {
- string MethodName = comboBoxEdit1.SelectedItem.ToString();
- TestMethod(MethodName, MethodName);
- }
- /// <summary>
- /// 反射调用类中的方法
- /// </summary>
- /// <param name="MethodName"></param>
- /// <param name="Text"></param>
- private void TestMethod(string MethodName, string Text)
- {
- try
- {
- //// 1.Load(命名空间名称),GetType(命名空间.类名)
- Type type = Assembly.Load("TestReflection").GetType("TestReflection.Test");
- //// 2.GetMethod(需要调用的方法名称)
- MethodInfo method = type.GetMethod(MethodName);
- //// 3.调用的实例化方法(非静态方法)需要创建类型的一个实例
- object obj = Activator.CreateInstance(type);
- //// 4.方法需要传入的参数
- object[] parameters = new object[] { this, Text };
- //// 5.调用方法,如果调用的是一个静态方法,就不需要第3步(创建类型的实例)
- //// 相应地调用静态方法时,Invoke的第一个参数为null
- method.Invoke(obj, parameters);
- }
- catch
- {
- }
- }
- }
- }
最新文章
- [Linux] -Docker修改空间大小
- javascript高级程序设计---Event对象二
- freeCodeCamp:Title Case a Sentence
- 【转】Xcode托管代码到oschina中的教程
- Objective-C( 三、方法的声明与实现)
- 在OCR文字识别软件选项卡中怎么设置图像和文字
- Hibernate的dialect大全
- 让Flash背景透明兼容Firefox、IE 6和IE 7的代码
- [Java][Android][Process] 分享 Process 运行命令行封装类型
- 49. leetcode 94. Binary Tree Inorder Traversal
- 《Metasploit魔鬼训练营》第一章习题
- git秘钥生成
- delete web server(nginx+apache)
- Windows下多个Mysql实例配置主从(转)
- [strongswan] strongswan METHOD宏
- Linux系统下公式编辑器KLatexFormula
- Bower前端模块管理器
- libsvm参数说明[zz]
- C输出大于127的ACSII字符
- 20155232 2016-2017-2 《Java程序设计》第2周学习总结