రిఫ్లెక్షన్ ఒక ప్రోగ్రామ్ను రানटైమ్లో టైపులు, మెథడ్లు మరియు ప్రాపర్టీలను పరిశీలించడం మరియు మార్చడం సక్షమ చేస్తుంది — కంపైల్ టైమ్లో తెలియని వాటితో కూడా. ఆట్రిబ్యూట్లు కోడ్కు ప్రకటనాత్మక మెటాడేటా జతపరుస్తాయి, టూల్లు మరియు ఫ్రేమ్వర్క్లు (తరచుగా రిఫ్లెక్షన్ ద్వారా) చదువుతాయి ఆ ప్రవర్తనను నడిపిస్తాయి. కలిసి అవి .NET యొక్క ఫ్రేమ్వర్క్ "మ్యాజిక్" యొక్క చాలా భాగాలను శక్తిచేస్తాయి (సీరియలైజేషన్, DI, ORMs, ధృవీకరణ).
