Любой язык .NET превращается в байт-код IL при запуске через компилятор. Reflector и подобные инструменты работают путем обратного инжиниринга IL обратно в синтаксис более высокого уровня, но они не обязательно производят точный код , который был скомпилирован изначально. Они просто предоставляют вам высокоуровневое «приближение», которое скомпилируется в один и тот же байт-код.
Лучше всего думать об этих инструментах как об ответе на вопрос "что я мог написать, чтобы получить этот результат?" а не «что автор написал для создания этого результата?»