I find a lot of cases where I think to myself that I could use relfection to solve a problem, but I usually don't because I hear a lot along the lines of "don't use reflection, it's too inefficient".

Now I'm in a position where I have a problem where I can't find any other solution than to use reflection with `new T()`, as outlined in [this question & answer](https://stackoverflow.com/questions/3372857/how-to-get-a-method-to-return-an-expression-to-resolve-unrecognised-method-call).

So I'm wondering if somebody can tell me reflection's specific intended usage, and if there's a set of guidelines to indicate when it's appropriate and when it isn't?