利用.net反射动态调用指定程序集的中的方法

本文介绍如何利用.NET反射技术,在运行时读取程序集的元数据,并动态调用程序集中的方法。通过Assembly.LoadFrom加载程序集,使用GetType获取类型信息,再通过GetMethod获取方法信息,并使用Invoke方法动态调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每个.net程序集除了代码外都额外包含了元数据。元数据包括了程序集本身的信息,比如版本号,引用了什么程序集,所有类型的信息,包括其方法、属性、字段。使用.net反射,可以在运行时读取这些信息,并且可以动态地调用方法。

通过Assembly.LoadFrom方法返回的Assembly对象,可以读取其中的元数据。其中的GetType会返回一个用于表示指定程序集的type对象(读取程序集中的所有类型用GetTypes会返回一个type对象的数组)。
       返回方法信息(公共方法)
       MethodInfo mi = T.GetMethod("getList");
       根据前面type类型创建一个对象
       object o = Activator.CreateInstance(T);
       参数
       object[] par = new object[] { "E01" };
       通过MethodInfo对象的Invoke方法,动态调用此方法,参数o是因为实例方法需要在调用时有一个实例存在.
       DataTable dt = (DataTable)mi.Invoke(o, par);
       调用返回的数据显示列表中。
示例下载:http://www.cnblogs.com/Files/NetFans/Solution2.rar

本篇文章来源于 站长资讯网 原文链接:http://www.chinahtml.com/0701/aspnet-116822669010203.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值