Refleksja
Refleksja umożliwia dynamiczne zbadanie typów, składowych i informacji o ich implementacji w czasie wykonywania programu. Pozwala to na znaczne zwiększenie elastyczności kodu i umożliwia dynamiczne modyfikowanie aplikacji w czasie jej działania. Refleksja jest realizowana przy użyciu klas i interfejsów zawartych w namespace System.Reflection.
Najczęstsze zastosowania refleksji to:
- Automatyzacja tworzenia instancji obiektów na podstawie nazwy typu.
- Pobieranie informacji o typie, właściwościach, metodach i atrybutach obiektu.
- Dynamiczne wywoływanie metod obiektów.
- Tworzenie bibliotek pluginów, które mogą być rozszerzane przez użytkowników bez modyfikowania kodu biblioteki.
- Dynamiczne generowanie kodu.
- Obsługa wyjątków i ładowanie klas w czasie wykonywania programu.