Reflection επιτρέπει σε ένα πρόγραμμα να επιθεωρεί και να χειρίζεται τύπους, μεθόδους και ιδιότητες κατά τη διάρκεια εκτέλεσης — ακόμα και αυτές που είναι άγνωστες κατά τη σύνταξη. Attributes προσαρτούν δηλωτικά μεταδεδομένα σε κώδικα που εργαλεία και frameworks διαβάζουν (συχνά μέσω reflection) για να οδηγήσουν τη συμπεριφορά. Μαζί ενδυναμώνουν μεγάλο μέρος της «μαγείας» του framework του .NET (σειριοποίηση, DI, ORMs, επικύρωση).## Reflection — επιθεώρηση και κλήση κατά τη διάρκεια εκτέλεσης**```csharp // examine a type's structure at runtime Type type = typeof(User); foreach (PropertyInfo prop in type.GetProperties()) Console.WriteLine($"{prop.Name}: {prop.PropertyType}");
