反射APP_CODE下的类和方法

本文介绍了一个ASP.NET应用程序中使用反射来动态调用方法的具体实现。通过加载特定的程序集,获取类型并创建其实例,然后调用该类型的指定方法。

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

这个问题来自论坛提问。

反射无非这么几步,获取Assembly,获取Type,获取MethodInfo,如果不是static方法则CreateInstance,最后Invoke就可以了。反射APP_CODE下面的类,无非是如何获取Assembly的问题,可以用"__code"或者"app_code"这两个AssemblyName获取。演示代码如下

aspx.cs

using System; using System.Reflection; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { System.Reflection.Assembly asm = Assembly.Load("__code"); //or:// System.Reflection.Assembly asm = Assembly.Load("app_code"); Type tp = asm.GetType("Tools"); if (tp != null) { object o = Activator.CreateInstance(tp);//创建实例 MethodInfo mi = tp.GetMethod("Reg");//反射方法 object ret = mi.Invoke(o, null);//执行方法 string str = ret.ToString();//获取结果 } } }

app_code\Tools.cs

using System; /// <summary> /// Test 的摘要说明 /// </summary> public class Tools { public string Reg() { return "aa"; } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值