asp.net利用反射调用页面定义的方法
时间:2011-01-25 来源:DreamZero
故利用反射来执行页面的一些方法,可以省下不少事情。代码如下:
在page_load方法中,实现反射代码,并添加一个需反射执行的方法。先看一个没有参数的函数:
代码 protected void Page_Load(object sender, EventArgs e)
{
string methordName = "GetResString";
// 或者 methordName = Request.QueryString["action"];
Type t = this.GetType();
MethodInfo method = t.GetMethod(methordName);
if (method != null)
{
Response.Write((string)method.Invoke(this,null));
}
} public string GetResString()
{
return "Test"; }
运行的结果页面就可以在页面上输出Test字样了。
添加一个需传参数的反射例子。
如:
代码 protected void Page_Load(object sender, EventArgs e){
string methordName = "GetResString";
// 或者 methordName = Request.QueryString["action"];
Type t = this.GetType();
object[] paras={"小强",23};//方法需调用的参数
Type[] typepara=new Type[paras.Length];
for(int i=0;i<paras.Length;i++)
{
typepara[i]=paras[i].GetType();
}
MethodInfo method = t.GetMethod(methordName,typepara);
if (method != null)
{
Response.Write((string)method.Invoke(this, paras));
}
}
public string GetResString(string name,int age)
{
return string.Format("{0}已经{1}岁了", name, age);
}
页面执行结果为:小强已经23岁了。
如果前台页面用:..Default.aspx?action=GetResString 也能达到同样的效果。
当然反射里面的东西比这个多多了,这只是个入门的东西,详细的大家可以查阅其他文档。
相关阅读 更多 +