Net反射技术应用解决对象不同版本方法不同参数的问题

转载 2006年06月07日 10:44:00
在调用Office的时候,我们发现Office2003与Office2000的一个方法参数个数不同,这样导致我们不能够使用正常手段调用该方法,采用反射技术可以轻松解决问题。以下是我写的应用反射技术调用对象方法之简单原型。

using System;
using System.Reflection;
public class Invoker
{
public static void Main()
{
System.Type myType = System.Type.GetType("Demo");//取得系统类型
object obj = Assembly.GetAssembly(myType).CreateInstance("Demo");//创建实例
MethodInfo method = myType.GetMethod("PrintLine");//提取方法信息
method.Invoke(obj, new object[]{"Rookie", 27});//调用方法

method = myType.GetMethod("PrintLine2");//提取另外一个方法,实际应用中是根据不同版本取得同一个方法,而构造不同参数数组
method.Invoke(obj, new object[]{"Rookie", 27, "Rookie personal information."});//调用方法
}
}
public class Demo
{
public Demo()
{
}
//实际应用中老版本的方法
public void PrintLine(string name, int age)
{
System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString());
}

//实际应用中升级版本的方法(名称相同,只是参数个数不同)
public void PrintLine2(string name, int age, string description)
{
System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString() + "; Description = " + description);
}
}

.Net反射技术应用解决对象不同版本方法不同参数的问题

    在调用Office的时候,我们发现Office2003与Office2000的一个方法参数个数不同,这样导致我们不能够使用正常手段调用该方法,采用反射技术可以轻松解决问题。以下是我写的应用反射...
  • zlyperson
  • zlyperson
  • 2004年03月11日 10:10
  • 762

Net反射技术应用解决对象不同版本方法不同参数的问题(转)

在调用Office的时候,我们发现Office2003与Office2000的一个方法参数个数不同,这样导致我们不能够使用正常手段调用该方法,采用反射技术可以轻松解决问题。以下是我写的应用反射技术调用...
  • Dream6000
  • Dream6000
  • 2006年11月07日 22:15
  • 770

一个项目引用不同版本dll

问题描述 一个项目引用不同版本的同一dll,会引发以下报错: 未能加载文件或程序集“xxx, Version=x.x.x.x, Culture=neutral, PublicKeyToken=xxxx...
  • wangzl1163
  • wangzl1163
  • 2017年06月13日 10:27
  • 1569

在一个Python脚本中加载2种不同版本的库

起因: 从ES集群A往ES集群B导数,然后比对2个ES的数据差异,逐个ID比对。由于ES集群A的版本是1.4.x,ES集群B的版本是5.3.x,所以无法使用同一个ES client包1. 加载不同版本...
  • woshiaotian
  • woshiaotian
  • 2017年06月13日 11:12
  • 429

java通过反射,只需要传了类名和参数,就可以根据不同参数的构造方法实例化对象

转载自:http://www.jianshu.com/p/69ca44916ebf 代码块 @requires_authorization private Object reflateInsta...
  • qq_36523667
  • qq_36523667
  • 2017年11月13日 13:33
  • 239

.net在同一个项目中要引用两种不同版本的dll(dll hell)的解决办法

spring.net + Quartz.net 开发项目 这两个框架都用到了common.logging.dll 但一个用的是2.0.0.0一个用的是2.1.1.0版本不同 解决办法:统一使用最...
  • rav009
  • rav009
  • 2013年01月07日 17:31
  • 3386

Java对象、对象引用关系及参数传递讨论

学习Java的过程中,很容易将对象及对象引用混为一谈,而且我们平时在交流时为了方便起见也只是对象怎样、对象怎样,但很多时候我们操作的,根本上来说是对象,但直接操作的却是对象的引用。 先贴一篇博文,非常...
  • newmemory
  • newmemory
  • 2016年04月20日 12:07
  • 4687

手机上安装同一android应用的不同版本

在开发工具中新建个项目,把原来的代码和资源文件复制过去,修改一下入口activity的包名,配置一下配置文件,打包生成即可...
  • yhxsin111
  • yhxsin111
  • 2014年05月28日 09:41
  • 357

android一个应用如何在一个手机上装多个不同版本的方法

做客户端APP,如果网络请求的构建
  • iamws
  • iamws
  • 2014年05月09日 23:50
  • 5105

.NetFrameWork介绍

我们知道每一个系统都会给我们提供一套API(即Application Programming Interface)应用程序接口 这个是最底层的调用了 比如在Window上面有Windows API ...
  • pengGeiii
  • pengGeiii
  • 2014年12月19日 14:09
  • 367
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Net反射技术应用解决对象不同版本方法不同参数的问题
举报原因:
原因补充:

(最多只允许输入30个字)