Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i
Telekomunikacji
Instytut Sterowania i Systemów Informatycznych Platforma .Net
Kierunek: Informatyka Laboratorium nr 8 REFLEKSJE I ATRYBUTY Prowadzący: dr inż. Marek Kowal
Zakres ćwiczeń:
1. Koncepcja programowania refleksyjnego
2. Dynamicznie ładowane zestawy i późne wiązanie 3. Atrybuty
Zadania:
1. Zapoznaj się ze wstępem teoretycznym dotyczącym wykorzystania w języku C#
refleksji i atrybutów (prowadzący zajęcia udostępni w tym celu materiały Microsoft IT Academy)
2. Scenariusz zakłada istnienie biblioteki, do której nie ma żadnej dokumentacji i nie bardzo wiadomo jakie typy są w nich zdefiniowane (bibliotekę potrzebną do wykonania ćwiczenia wskaże prowadzący zajęcia). Twoim zadanie jest utworzenie programu, który wczytywałby dany zestaw, analizował go, a następnie generował raport w postaci pliku tekstowego, który będzie zwierał informacje na temat typów zdefiniowanych w danym zestawie. Informacje które muszą być zawarte w raporcie o każdym z typów zdefiniowanych w danym zestawie to:
nazwa typu
w jakiej przestrzeni nazw typ jest zdefiniowany
nazwa typu bazowego
czy typ jest typem publicznym, zagnieżdżonym, ogólnym
czy typ jest klasą (abstrakcyjną, zamkniętą), typem bezpośrednim, interfejsem
lista zaimplementowanych interfejsów
lista pól. O każdym polu musi byd zawarta następująca informacja:
typ pola
nazwa pola
modyfikator dostępu użyty przy definicji tego pola
czy pole jest polem statycznym
czy pole jest polem const
czy pole jest tylko do odczytu
lista metod. O każdej metodzie musi byd zawarta następująca informacja:
nazwa metody
typ wartości zwracanej
modyfikator dostępu użyty przy definicji tej metody
czy metoda jest statyczna, abstrakcyjna , wirtualna, zamknięta
listę argumentów metody (typ argumentu i nazwę argumentu)
lista konstruktorów. O każdym konstruktorze musi byd zawarta następująca informacja:
nazwa konstruktora
modyfikator dostępu użyty przy definicji konstruktora
czy konstruktor jest statyczny
listę argumentów konstruktora (typ argumentu i nazwę argumentu)
listę zdarzeń. O każdym zdarzeniu musi byd zawarta następująca informacja:
typ delegacji
nazwa zdarzenia Literatura:
1. Włodarczyk M.: ITA-105 Programowanie obiektowe, 2007.
2. Chappell D.: Zrozumieć platformę .NET, Helion, 2007.
3. Duffy J.: .NET Framework 2.0, Zaawansowane programowanie, Helion, 2007.
4. Michelsen K.: Język C#. Szkoła programowania, Helion, 2007 5. Liberty J.: C# 2005. Wprowadzenie, O'Reilly, 2007