传递方法名称以调用处理程序

时间:2012-01-25 14:45:57

标签: c# reflection handler

我正在尝试通过querysting传递,要调用的方法名称并让ProcessRequest在我的处理程序中调用该方法。我在这里学习,所以最好的方法是做什么。这就是我的......

我在methodInfo.Invoke上得到错误The best overloaded method match for Invoke(object, object[]) has some invalid arguments

 public class SocialSharingHandler : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        string method = (string)context.Request.QueryString["m"];
        if (!string.IsNullOrEmpty(method))
        {
            MethodInfo methodInfo = typeof(SocialSharingHandler).GetMethod(method);
            methodInfo.Invoke(new SocialSharingHandler(), context.Request.Form);
        }
    }
....

2 个答案:

答案 0 :(得分:1)

methodInfo.Invoke(new SocialSharingHandler(), new object[] { context.Request.Form });

答案 1 :(得分:0)

错误消息指出param类型预期对象和对象对象数组[]

public class SocialSharingHandler : IHttpHandler 
 {
    public void ProcessRequest(HttpContext context)
    {
         string method = (string)context.Request.QueryString["m"];
         if (!string.IsNullOrEmpty(method))
         {
              MethodInfo methodInfo = typeof(SocialSharingHandler).GetMethod(method);
              methodInfo.Invoke(new SocialSharingHandler(), new object[] { context.Request.Form });
         }     
     } 
 }