C# 通过反射调用实例类或静态类的方法

一、创建类

//反射对象类
//ruleAssembly为dell文件、ruleNmspaceName :命名空间;ruleClsName:类名
//如果是泛型,ruleClsName后面需要增加一个“`1”
Type ruleType = Assembly.Load(ruleAssembly).GetType(ruleNmspaceName + "." + ruleClsName, true, true);
//反射非本程序集中的类需要先使用Assembly.Load加载
//反射本程序集中的类可直接使用GetTypeGetType,无须Assembly.Load加载
//Type ruleType = Type.GetType(ruleNmspaceName + "." + ruleClsName, true, true);//if your class contains genericParameters
ruleType = ruleType.MakeGenericType(modelType);

二、创建类的对象

object ruleObj = Activator.CreateInstance(ruleType, new object[] { studioGeneric });

三、创建方法

//不懂BindingFlags参数的,自行查资料
MethodInfo method = ruleType.GetMethod(Method, BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.CreateInstance | BindingFlags.Public);
//if your method Contains GenericParameters
method = method.MakeGenericMethod(modelType);//单方法泛型参数赋值

四、调用方法

object obj = method.Invoke(ruleObj, args);
// only it's static class
//object obj = method.Invoke(ruleType, args);

C# 反射 静态类 静态方法 static相关推荐

  1. java反射 修改静态方法的值 setAccessible

    转载自 java反射 修改静态方法的值 setAccessible 这几天闲来无事.在网上看了一个题目,相信大家都知道这个题目 static void change(String str){str=& ...

  2. java 反射调用静态方法

    使用包装类Integer中的静态方法parseInt ,如果使用java反射来进行调用 调用实例: public static void main(String[] args) throws Ille ...

  3. C#静态类 静态方法与非静态方法比较

    静态类 在类(class)上加入static修饰,表示该类无法被实例化,并将该类中,无法实例化变量或函数 静态类的主要特性 仅包含静态成员 无法实例化 静态类的本质,时一个抽象的密封类,所以不能被继承 ...

  4. java 静态类 静态方法_JAVA的静态变量、静态方法、静态类

    静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象                                ...

  5. 静态方法static 的了解

    2019独角兽企业重金招聘Python工程师标准>>> 学习了static静态方法,静态变量的一些知识,简单的进行一些总结: 静态方法无参数且无返回值的方法 静态方法有参数无返回值的 ...

  6. PHP中静态方法(static)与非静态方法的使用及区别

    static关键字用来修饰属性.方法,称这些属性.方法为静态属性.静态方法. static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类 ...

  7. javaSE-day04--ArrayList基本用方法、类内定义方法和方法重载、静态方法static(类的方法)、工具方法(static)的定义和使用

    ArrayList基本用方法 package day04;import java.util.ArrayList;public class ArrayListDemo {public static vo ...

  8. 静态方法static,静态代码块

    为什么工具类中的方法不用实例方法做? 1.实例方法需要创建对象调用 2.此时用对象只是为了调用方法,这样只会浪费内存. 工具类定义时的其他要求: 由于工具里面都是静态方法,直接用类名即可访问,因此,工 ...

  9. 面向对象之静态方法(static)和实例化方法的区别

    这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简 ...

最新文章

  1. You should rebuild using libgmp = 5 to avoid timing attack vulnerability
  2. oracle 查看用户状态,Oracle数据库查看用户状态
  3. php获取错误信息函数,关于php:如何获取mail()函数的错误消息?
  4. linux下toe网卡驱动,toe命令是干什么的,有没有大神解答一下
  5. MyEclipse 2017 CI 9 发布(附下载)
  6. 电影票房数据查询服务高性能与高可用实践
  7. apereo cas开发_Apereo CAS Server服务端搭建教程
  8. 正确设置asp.net网站的404错误页面
  9. [编织消息框架][设计协议]位运算
  10. B 站监控系统的框架、演进与展望
  11. Bridge的VLAN接口模式
  12. 2020强网杯Siri记录
  13. 推荐几款ReactJS最优秀的UI框架
  14. 知识图谱-KGE-第三方库:LibKGE库【包含:TransE、TransH、ConvE、DistMult、ComplEx、TuckER、SimplE...】
  15. 计算机应用基础(专)【7】
  16. 编译实验 lr c语言代码,编译原理-实验5-LR(1)分析法
  17. linux pv命令,linux运维系列pv指令
  18. Mac下GOPATH配置
  19. 【二开】【JeecgBoot】修改分页参数
  20. 2022亚太杯C题思路代码分析

热门文章

  1. killall: 未找到命令
  2. nvarchar在mysql中是_如何在MySQL中创建NVARCHAR列?
  3. bim学习—— 第7章 放置首层门窗
  4. 小马哥---高仿红米note A6-4.1-20140709(背贴A6-40M1-TD-V3.00刷机拆机主板图与开机识别图
  5. WAMPSERVER修改默认浏览器和编辑器
  6. 使用adb时出现Permission denied的解决办法
  7. a73*2+a53*2指的是什么_蚂蚁庄园11月5日小课堂今日答案 杨花落尽子规啼闻道龙标过五溪中的子规指的是什么|蚂蚁|庄园-游戏资讯...
  8. 「经典题」JavaScript数据类型有哪些?
  9. win7刷bois破解经历,华硕主板.
  10. UE4 射击游戏(游戏机制完善中)