bool CheckMethod(MethodInfo method, RequestHandlerAttribute attr) { if ((method.ReturnType != typeof(void)) && !method.ReturnType.Equals(typeof(Task))) { return(false); } var pinfo = method.GetParameters(); if (pinfo.Length != 1) { return(false); } if (!pinfo [0].ParameterType.Equals(typeof(ServerContext))) { return(false); } var handler = new RequestHandler(method, attr); handlerByName.Add(handler.Name, handler); handlerByMethod.Add(method, handler); return(true); }
public RequestHandler(MethodInfo method, RequestHandlerAttribute attr) { Attribute = attr; if (method.ReturnType == typeof(void)) { Handler = (RequestHandlerDelegate)Delegate.CreateDelegate( typeof(RequestHandlerDelegate), method); } else { IsAsync = true; AsyncHandler = (AsyncRequestHandlerDelegate)Delegate.CreateDelegate( typeof(AsyncRequestHandlerDelegate), method); } Name = method.DeclaringType.FullName.Replace('.', '/') + '/' + method.Name; }
public RequestHandler (MethodInfo method, RequestHandlerAttribute attr) { Attribute = attr; if (method.ReturnType == typeof (void)) { Handler = (RequestHandlerDelegate)Delegate.CreateDelegate ( typeof (RequestHandlerDelegate), method); } else { IsAsync = true; AsyncHandler = (AsyncRequestHandlerDelegate)Delegate.CreateDelegate ( typeof (AsyncRequestHandlerDelegate), method); } Name = method.DeclaringType.FullName.Replace ('.', '/') + '/' + method.Name; }
bool CheckMethod (MethodInfo method, RequestHandlerAttribute attr) { if ((method.ReturnType != typeof (void)) && !method.ReturnType.Equals (typeof (Task))) return false; var pinfo = method.GetParameters (); if (pinfo.Length != 1) return false; if (!pinfo [0].ParameterType.Equals (typeof(ServerContext))) return false; var handler = new RequestHandler (method, attr); handlerByName.Add (handler.Name, handler); handlerByMethod.Add (method, handler); return true; }