private static LightParameterInfo[] GetParameterInfoArray(MethodInfo methodInfo, InfoArrayMode mode = InfoArrayMode.Invoke) { var parameters = methodInfo.GetParameters(); var infoList = (from t in parameters where mode != InfoArrayMode.EndInvoke || t.ParameterType.IsByRef select new LightParameterInfo(t)).ToList(); switch (mode) { case InfoArrayMode.BeginInvoke: infoList.Add(new LightParameterInfo(typeof(AsyncCallback), "callback")); infoList.Add(new LightParameterInfo(typeof(object), "object")); break; case InfoArrayMode.EndInvoke: infoList.Add(new LightParameterInfo(typeof(IAsyncResult), "result")); break; case InfoArrayMode.Invoke: break; default: throw new ArgumentOutOfRangeException(nameof(mode), mode, null); } var infoArray = new LightParameterInfo[infoList.Count]; for (var i = 0; i < infoList.Count; i++) { infoArray[i] = infoList[i]; } return(infoArray); }
private static LightParameterInfo[] GetParameterInfoArray(MethodInfo methodInfo, InfoArrayMode mode = InfoArrayMode.Invoke) { var parameters = methodInfo.GetParameters(); var infoList = new List <LightParameterInfo>(); for (var i = 0; i < parameters.Length; i++) { if (mode != InfoArrayMode.EndInvoke || parameters[i].ParameterType.IsByRef) { infoList.Add(new LightParameterInfo(parameters[i])); } } if (mode == InfoArrayMode.BeginInvoke) { infoList.Add(new LightParameterInfo(typeof(AsyncCallback), "callback")); infoList.Add(new LightParameterInfo(typeof(object), "object")); } if (mode == InfoArrayMode.EndInvoke) { infoList.Add(new LightParameterInfo(typeof(IAsyncResult), "result")); } var infoArray = new LightParameterInfo[infoList.Count]; for (var i = 0; i < infoList.Count; i++) { infoArray[i] = infoList[i]; } return(infoArray); }
private static LightParameterInfo[] GetParameterInfoArray(MethodInfo methodInfo, InfoArrayMode mode = InfoArrayMode.Invoke) { var parameters = methodInfo.GetParameters(); var infoList = (from t in parameters where mode != InfoArrayMode.EndInvoke || t.ParameterType.IsByRef select new LightParameterInfo(t)).ToList(); if (mode == InfoArrayMode.BeginInvoke) { infoList.Add(new LightParameterInfo(typeof(AsyncCallback), "callback")); infoList.Add(new LightParameterInfo(typeof(object), "object")); } if (mode == InfoArrayMode.EndInvoke) { infoList.Add(new LightParameterInfo(typeof(IAsyncResult), "result")); } var infoArray = new LightParameterInfo[infoList.Count]; for (var i = 0; i < infoList.Count; i++) { infoArray[i] = infoList[i]; } return(infoArray); }