internal static void ArrayToArguments(this ILGenerator IL, ILArray Array, MethodInfo Method) { var parameters = Method.GetParameters(); for (int i = 0; i < parameters.Length; i++) { if (!parameters[i].IsByRefOrOut()) { continue; } IL.LoadArgument(i + 1); Array.LoadElementAt(i); IL.Emit(OpCodes.Unbox_Any, parameters[i].ActualParameterType()); IL.StoreIndirect(parameters[i].ActualParameterType()); } }