Reflection lets a program inspect and manipulate types, methods, and properties at runtime — even ones unknown at compile time. Attributes attach declarative metadata to code that tools and frameworks read (often via reflection) to drive behavior. Together they power much of .NET's framework "magic" (serialization, DI, ORMs, validation).
Reflection — runtime inspection and invocation
Type type = (User);
(PropertyInfo prop type.GetProperties())
Console.WriteLine();
(MethodInfo method type.GetMethods()) { }
instance = Activator.CreateInstance(type);
PropertyInfo p = type.GetProperty();
p.SetValue(instance, );
