void ReorderParamArrayArguments(ref object[] args, MethodBase method)
{
ParameterInfo[] parameters = method.GetParameters();
object[] newArgs = new object [parameters.Length];
Array paramArray = Array.CreateInstance(parameters[parameters.Length - 1].ParameterType.GetElementType(),
args.Length - (parameters.Length - 1));
int paramArrayCount = 0;
for (int i = 0; i < args.Length; i++) {
if (i < (parameters.Length - 1))
newArgs [i] = args [i];
else {
paramArray.SetValue (args [i], paramArrayCount);
paramArrayCount ++;
}
}
newArgs [parameters.Length - 1] = paramArray;
args = newArgs;
}
}