Use expression instead of reflection
Short circuit the CreateInstance call for no parameters to avoid unnecessary allocation for object[]