反射技术继续

转载 2011年01月21日 20:50:00

假设另一个工程中的所有类都编译到一个dll文件中了,在这很多的类当中,有一个类叫StringUtil,名称空间在HSMP.CommonBasic.Common下
该类中有一个方法:
public   double   GetSum(double   x,double   y)
{
return   x+y;
}
编译后dll文件的存放路径是:D:/Test/HSMP.CommonBasic.dll
现在的问题是,如何通过程序调用该dll文件中的GetSum方法
大概有以下几步:
using   System.Reflection;
A.
//这里要用LoadFrom,只有在本工程里添加了该dll的引用后才可以使用Load
Assembly   objAss   =   Assembly.LoadFrom(@ "D:/Test/HSMP.CommonBasic.dll ");
//HSMP.CommonBasic.Common.StringUtil类的全路径
Type   t=objAss.GetType( "HSMP.CommonBasic.Common.StringUtil ");  
//动态生成类StringUtil的实例
object   obj=System.Activator.CreateInstance(t);
//参数信息,GetSum需要两个int参数,如果方法没有参数,就声明一个长度为0的数组
System.Type[]   paramTypes   =   new   System.Type[2];
paramTypes[0]   =   System.Type.GetType( "System.Int32 ");
paramTypes[1]   =   System.Type.GetType( "System.Int32 ");
//找到对应的方法
MethodInfo   p   =   t.GetMethod( "GetSum ",   paramTypes)
//参数值,如果所调用的方法没有参数,不用写这些
Object[]   parameters   =   new   Object[2];
parameters[0]   =   3;
parameters[1]   =   4;
object   objRetval   =   p.Invoke(obj,   parameters);   //如果没有参数,写null即可。

声智科技完成 A 轮近亿融资,继续专注 AI 语音技术迭代和场景拓展

雷锋网消息,10 月 27 日上午,声智科技(SoundAI)宣布已于 2017 年 9 月份完成 A 轮近亿人民币融资,本轮融资由百度、蓝港互动、洪泰基金、峰瑞资本联合财务投资,北京银行以投贷联动方...

专业技术人员继续教育挂机软件

  • 2016年03月06日 11:31
  • 6.79MB
  • 下载

专业技术人员继续教育挂机软件

  • 2016年03月06日 11:27
  • 31.96MB
  • 下载

换个巢继续我的技术宅生活

首先声明我不是大神,刚刚开始我的技术宅生活!以前一直宅在360doc,最近360doc的审核流程很不给力,其实我也蛮支持保护个人版权问题的,但360doc这次这种模式的确让我丧失信心了,很反感也很恶心...
  • rzhzhz
  • rzhzhz
  • 2011年12月09日 17:18
  • 1235

工程师们:将来想走管理路线还是继续技术路线,有你认同的观点吗?

题目和投票的内容可能有不太合理的地方望见谅,在此只是抛砖引玉,希望对这个问题能有个更深入的认识,也希望我们都能从中获益。     首先我喜欢做技术,但考虑生存环境的优越程度和对自己能力的挑战,我...
  • educast
  • educast
  • 2014年09月28日 14:43
  • 1347

大龄程序员也可以继续做技术

先抛出观点:大龄程序员是可以继续做技术的。     然后解释:     1、程序员在中国其实是一个新兴职业,发展时间还不够长。想想如果有一个今年30岁的程序员,那他也是1986年生的人了。只要看看...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:反射技术继续
举报原因:
原因补充:

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