Pourquoi l'usage de la réflexion dans l' .NET a recommandé?

Est-il vraiment une bonne pratique pour l'utiliser?

Quelles sont les situations possibles dans un projet qui a besoin de la réflexion?