Last Updated: May 22, 2026
Reflection is the ability of a .NET program to look at its own types at runtime: which classes exist, what methods and fields they have, what attributes are attached to them. The machinery lives in the System.Reflection namespace and is the foundation of serializers, ORMs, DI containers, test runners, and most build-time tooling. This lesson covers the entry points (how to get a Type in the first place), the inspection API surface (Type properties, Assembly, the MemberInfo hierarchy, BindingFlags), and the performance cost you pay for using any of it. The _Inspecting Types at Runtime_ lesson takes these tools and actually invokes methods, reads field values, and constructs objects at runtime.