C#反射调用方法实例
下面是两个反射的实例
案例1:
动态调用类中的方法、传入参数,并获得返回值。
xxxx:类名
Event:类中的方法
pra1,pra2,pra3:方法对应的入参
DoRet:方法返回的执行结果
Type t = typeof(xxxx);//类名
MethodInfo mt = t.GetMethod(Event);//加载方法
string DoRet = mt.Invoke(this, new object[] { pra1, pra2, pra3 }).ToString();//执行
案例2:
动态加载外部DLL,并执行其中的方法。
xxx:外部Dll的名字
zzz:Dll中的类名
yyy:方法名
pra1,pra2:入参
Ret:调用yyy的返回结果
Assembly ass = null;
Type tp;
Object obj;
ass = Assembly.Load("xxx");//dll名字
tp = ass.GetType("xxx.zzz");//类名
obj = Activator.CreateInstance(tp);//实例化
MethodInfo meth = tp.GetMethod("yyy");//加载方法
int Ret= meth.Invoke(obj, new Object[] { pra1, pra2 }).ToString();//执行
案例3:
动态执行方法和匹配参数
1.从http请求中解析出方法method和输入参数paras
2.从类中获取method的入参列表lists
3.匹配lists和paras,如果paras少于lists,则用空值代替
4.调用对应的方法
C#反射调用方法实例的更多相关文章
- .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)——转载
原文链接:https://blog.walterlv.com/post/dotnet-high-performance-reflection-suggestions.html ***** 大家都说反射 ...
- 原 .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
大家都说反射耗性能,但是到底有多耗性能,哪些反射方法更耗性能:这些问题却没有统一的描述. 本文将用数据说明反射各个方法和替代方法的性能差异,并提供一些反射代码的编写建议.为了解决反射的性能问题,你可以 ...
- Java反射学习-4 - 反射调用方法
反射调用方法: package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Method ...
- JAVA反射调用方法
1.用户类 package com.lf.entity; import com.lf.annotation.SetProperty; import com.lf.annotation.SetTable ...
- 利用反射调用方法时,处理ref,out参数需要注意的问题(转)
转自:http://www.68idc.cn/help/buildlang/ask/20150318283817.html 项目中如下的泛型方法,因为要在运行时,动态指定类型参数,所以要利用反射来实现 ...
- 通过Java反射调用方法
这是个测试用的例子,通过反射调用对象的方法. TestRef.java import java.lang.reflect.Method; import java.lang.reflect.In ...
- spring aop 动态代理批量调用方法实例
今天项目经理发下任务,需要测试 20 个接口,看看推送和接收数据是否正常.因为对接传输的数据是 xml 格式的字符串,所以我拿现成的数据,先生成推送过去的数据并存储到文本,以便验证数据是否正确,这时候 ...
- java 使用反射调用方法
每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...
- Java 反射调用方法 - 不跳过安全检查、跳过安全检查和普通方法性能比较测试
java中反射提供灵活性同时,给运行效率带来了一定影响.写个代码测试一下 package com.xzlf.reflectTest; import java.lang.reflect.Method; ...
随机推荐
- 关于top命令的使用
在服务器运维过程中,我们有时需要知道当前状态下的系统运行性能,该如何获取呢?今天,咱们聊一下关于top这个小命令的一些知识. top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资 ...
- 安装VMware错误,Microsoft Runtime DLL 安装程序未能完成安装
安装VMware-workstation-full-12.5.6-5528349, 出现如下错误: 这时候,要注意了,不要点击"确认",如果手快点击了,没关系再次运行VMware安 ...
- 在openjdk8下看Unsafe源码
尽管有传言JAVA9可能会移除Unsafe类,但不妨碍我们理解它的原理.因为类不在了,native方法还在那里.就像菜换样了,食材就那些没变.一个好厨师不仅仅需要会做菜,还需要能识别食材特性...来吧 ...
- laravel rbac的用户 角色 权限的crud
user.php <?php /* |-------------------------------------------------------------------------- | W ...
- ubuntu ssh 免密码登录
1 ssh 是什么? ssh 是一种 加密协议,ssh 是两个加密的密码,一个是公钥一个是私钥,公钥加密的信息只有是要才能解密.ssh协议可用于服务之间的通信.例如:登录验证,git的授权等等 2 s ...
- Form表单 JSON Content-type解析
Form表单 JSON Content-type解析 1 表单Form概述 在Form表单中,参数一般有: action 表单提交的url method 提交方式:post get name 表单的属 ...
- java中八大基本数据类型详解
1.基本数据类型的分类 java中的类型分为基本数据类型和引用类型,今天我们讨论的是java中的八大基本数据类型. 基本数据类型可以分为三类:1.数值类型.2.字符类型.3.布尔类型. 数值类型又分为 ...
- centos-7 yum装docker-ce后启动失败
相关版本: centos-7: CentOS Linux release 7.0.1406 (Core) docker-ce: Docker version 18.03.0-ce, build 0 ...
- python 防止sql注入字符串拼接的正确用法
在使用pymysql模块时,在使用字符串拼接的注意事项错误用法1 sql='select * from where id="%d" and name="%s" ...
- JAVA基础第四章-集合框架Collection篇
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...