利用.Net中的反射动态调用方法
.Net中的反射功能是极其强大的,本篇先用他来动态调用方法
看如下一个类
Public Class A
{
public void InvokeMethod(string methodname)
{
Type p=this.GetType();
MethodInfo m=p.GetMethod(methodname);
if(m!=null)
m.Invkoe(this,new object[0])
}
public void MethodA()
{
}
public void MethodB()
{
}
}
上面的类中在InvokeMethod方法中传进MethodA或MethodB字符串就能执行MethodA或MethodB方法了
当然还可以在进行如下改进:
public object FunctionA(int par1,object par2)
{
do something...
return some
}
public object InvokeMethod(string methodname,object[] paramet)
{
Type[] ptype=new Type[paramet.Length];
for(int i=0;i<ptype.Length;i++)
ptype[i]=paramet[i].GetType();
Type p=this.GetType();
MethodInfo m=p.GetMethod(methodname,ptype);
if(m!=null)
return m.Invkoe(this,paramet);
return null
}
调用InvokeMethod并传进方法名称和方法参数就能调用相应的方法,并返回值.
哈哈,就说这些,投石问路哈
转载于:https://www.cnblogs.com/ren700622/archive/2010/08/01/1789934.html
利用.Net中的反射动态调用方法相关推荐
- C# 知识点笔记:IEnumerable的使用,利用反射动态调用方法
IEnumerable<T>的使用 创建一个IEnumerable对象 List<string> fruits = new List<string> { " ...
- Struts2中Action的动态调用方法
在Struts2中,Action执行的时候并不一定要执行execute,我们可以指定Action执行哪个方法,下面分别介绍三种方法来指定Action执行哪个方法: 1.第一种方法,通过Action里的 ...
- (C#)利用反射动态调用类成员[转载]
使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): public object InvokeMember( string name ...
- 利用反射动态调用类成员C#
使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): public object InvokeMember( string name ...
- C# 利用反射动态调用类成员
使用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下: public object InvokeMember( string name, BindingFla ...
- Xcode中Objc动态调用方法同时避免警告的几个办法
我们在Xcode中使用objc写代码的时候往往会碰到动态调用方法的时候. 如果是静态调用这很常见,不会有任何问题: [self performSelector:@selector(method)]; ...
- 通过.NET反射动态调用SetValue方法给属性PropertyInfo动态类型赋值
注意:若不动态转换属性的值,简单调用SetValue方法赋值经常出错!特别是日期类型.带符号的数字类型等. 解决方案: 通过TypeDescriptor.GetConverter方法获取对应数值类型的 ...
- Java动态调用方法
一直想学如何动态调用方法,今天终于看了一下.. public void function(String str) { / /根据 str的值 调用相应的方法 } public void test() ...
- 反射动态调用DLL类库测试
定义:可以在运行时获得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数等.有了反射,即可对每一个类型了如指掌 ...
最新文章
- 4 通讯_鼎信通讯:2019年净利润同比下降20.58% 拟10转4派1.04元
- JAVA设计模式详解(六)----------状态模式
- java数据写入文件方案,Java如何将字符串数据写入文件?
- Java ObjectOutputStream flush()方法与示例
- 收藏 | 卷积神经网络中10大拍案叫绝的操作!
- Jenkins持久化集成使用
- myeclipse中配置maven
- android自定义application,Android Test Orchestrator和自定义Application类
- spring扩展点六:监听spring容器刷新事件
- 使用 Document!X 为自己的dll生成一个漂亮的说明文档
- 联想服务器r525维修,扩展性强易管理 联想R525 G2服务器拆解
- html中th与thead的详细区别
- Ajax关于readyState和status
- java计算机毕业设计房屋租赁管理系统源码+系统+lw+数据库+调试运行
- LintCode——Chalkboard XOR Game(黑板游戏)
- golang的杀手级应用:docker
- Unity3dMVC框架编程核心思想
- ZLAN_ACC 安装代码
- Win32k syscall
- C语言心算程序设计抽奖程序,幼儿园大班数学优质课:抽奖游戏
热门文章
- 华为智慧屏鸿蒙挂安卓9,荣耀先行!华为智慧屏9月发布:搭鸿蒙系统和自研芯片...
- c 窗体中添加mysql控件,MYSQL 统计数据-svn服务器启动-WinFrom控件库|.net开源控件库|HZHControls官网...
- matlab 指定区域随机游走_了解随机游走模型和移动平均过程(Python)
- Dart学习笔记01:环境搭建与开发环境配置
- Python学习笔记:使用Python操作数据库
- 无心剑中译罗素《通往幸福之路》
- SSM框架笔记07:初探Spring——采用XML配置文件与注解方式
- @经典微小说 因为爱
- 曲线聚类_R语言确定聚类的最佳簇数:3种聚类优化方法
- 对于树分治算法的初步理解