Welcome

首页 / 软件开发 / C# / 反射APP_CODE下的类和方法

反射APP_CODE下的类和方法2011-07-02 csdn博客 jinjazz这个问题来自论坛提问。

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

aspx.cs

01.using System;02.using System.Reflection;03.public partial class _Default : System.Web.UI.Page04.{05.protected void Page_Load(object sender, EventArgs e)06.{07.System.Reflection.Assembly asm = Assembly.Load("__code");08.//or:// System.Reflection.Assembly asm = Assembly.Load("app_code");09.Type tp = asm.GetType("Tools");10.if (tp != null)11.{12.object o = Activator.CreateInstance(tp);//创建实例13.MethodInfo mi = tp.GetMethod("Reg");//反射方法14.object ret = mi.Invoke(o, null);//执行方法15.string str = ret.ToString();//获取结果16.}17.}18.}
app_codeTools.cs

01.using System;02./// <summary>03./// Test 的摘要说明04./// </summary>05.public class Tools06.{07.publicstring Reg()08.{09.return "aa";10.}11.}