public static object FastInvoke(this MethodInfo methodInfo, object obj, params object[] parameters) { if (methodInfo == null) { throw new ArgumentNullException(nameof(methodInfo)); } MethodDelegate invoker = (MethodDelegate)MethodDic[methodInfo]; if (invoker == null) { invoker = DynamicMethodFactory.CreateMethod(methodInfo); MethodDic[methodInfo] = invoker; } return(invoker(obj, parameters)); }