You are calling MethodInfo.MakeGenericMethod
but throwing away the return value. The return value itself is the method you want to Invoke
:
MethodInfo genericMethod = MI.MakeGenericMethod(new[] { typeof(string) });
genericMethod.Invoke(null, new[] { "Hello" });