在asp.net页面中动态调用方法

系统原来是通过webservice实现的,现在需要在webservice访问cookie, 但在webservice中没法调用cookie,后来发现可以通过下列方法实现:具体例子如下 :

protected void Page_Load(object sender, EventArgs e)
    
{
        
//参数定义
        object[] args = new object[]{};

        Type type 
= this.GetType();

        
//动态调用方法,方法名可以通过参数传过来
        MethodInfo methodInfo = type.GetMethod("Test");

        
if (methodInfo != null)
        
{
            args 
= new object[methodInfo.GetParameters().Length];
            
//对方法名的参数进行赋值
            for (int i = 0; i < methodInfo.GetParameters().Length; i++)
            
{
                ParameterInfo param 
= methodInfo.GetParameters()[i];
                args[i] 
= Request.QueryString[param.Name];
            }

            
//执行方法
            methodInfo.Invoke(this, args);
        }

    }


    
public void Test(string Id,string name)
    
{
        
//Response.Write(Request.Cookies[0].Value);
        Response.Write(Id + ":" + name);
    }


    
public void TestA()
    
{
        Response.Write(
"dddd");
    }

posted on 2007-09-13 15:14  信仰  阅读(806)  评论(1编辑  收藏  举报

导航