Это две части одного целого.
Самоанализ - это способность класса искать «внутри» себя и видеть, например, какие параметры принимает метод, каковы имена его членов и т. Д.
Reflection - это конкретное имя для того, как .NET реализует самоанализ. Другие языки могут называть это как-то иначе (C ++ называет свой ограниченный самоанализ RTTI для информации о типах во время выполнения).