Reflection permite unui program să inspecteze și manipuleze tipuri, metode și proprietăți la runtime — chiar și cele necunoscute la compile time. Attributes atașează metadate declarative la cod pe care tool-urile și framework-urile le citesc (adesea prin reflection) pentru a controla comportamentul. Împreună, ele alimentează o mare parte din "magia" framework-ului .NET (serializare, DI, ORM-uri, validare).
