Reflection omogućava programu inspektovanje i manipulaciju tipovima, metodama i svojstvima tijekom izvršavanja — čak i onima nepoznatim tijekom kompajliranja. Attributes dodeljuju deklarativne metapodatke kodu koje alati i framework-i čitaju (često putem reflectiona) kako bi pokrenuli ponašanje. Zajedno omogućavaju većinu .NET framework-a "magije" (serializacija, DI, ORM-ovi, validacija).
