Передать имя метода для вызова обработчику - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь передать через querysting имя метода, который должен быть вызван и у которого ProcessRequest вызывает этот метод в моем обработчике.Я учусь, как я иду сюда, так что будет лучшим способом сделать это.Вот что у меня есть ...

Я получаю ошибку The best overloaded method match for Invoke(object, object[]) has some invalid arguments на methodInfo.Invoke.

 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 ]

1 голос
/ 25 января 2012
methodInfo.Invoke(new SocialSharingHandler(), new object[] { context.Request.Form });
0 голосов
/ 25 января 2012

В сообщении об ошибке указываются параметры типа ожидаемого объекта и массив объекта object []

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 });
         }     
     } 
 }  
...