Duplicate method call or add logic to set local variables as parameters?
I think this would be even better, in this case.

private static void Invoke&lt;T&gt;(string[] args, MethodInfo method) where T : new()
{
    T target = new T();
    target.InvokeMethod(
        "Initialize", errorIfMethodDoesNotExist: false, accessNonPublic: true);
    string[] methodArgs = args.Skip(1).ToArray();
    method.Invoke(target, methodArgs);
}


Skip() on an empty collection returns an empty collection.