Mam aplikację, która dziś używa podstawowej refleksji, aby pobrać klasy.Czy Type.GetType() spowolni w zależności od rozmiaru i złożoności obiektu, który pobierasz?
Type type = Type.GetType(mynamespace.myclassname);
object o = System.Activator.CreateInstance(type);
Chciałem zobaczyć, jak skuteczne odbicie biegł więc generowane około 150 tysięcy obiektów w taki sposób, aby sprawdzić, czy wydajność kiedykolwiek zdegradowany i występ był szybki i stabilny.
Jednak to mnie do myślenia: Czy wywołanie Type.GetType() rzeczywiście spowalnia w zależności od wielkości i złożoności klasy przekazywane do metody GetType()?
Na przykład: Powiedzmy, że chcieliśmy użyć metody GetType() w celu pobrania złożonej klasy składającej się z 30 zmiennych prywatnych, 30 metod prywatnych i 30 metod publicznych w porównaniu do klasy, która ma tylko jedno bardzo proste publiczne dodawanie (int, int) metoda, która podsumowuje dwie liczby.
Czy Type.GetType zwolniłby znacząco, jeśli przekazywana klasa jest klasą złożoną, a nie prostą?
dzięki
'GetType()' lub 'CreateInstance()'? –
Wierzę, że GetType jest rozwiązywany w czasie kompilacji, a CreateInstance używa metadanych, więc nie ma żadnych iteracji nad właściwościami klasy, jak się wydaje sugerować. Czy ktoś może to potwierdzić? (Przy okazji przegłosowałem, a nie głosowanie w dół, jako interesujące pytanie). – Lloyd
Przykro mi z powodu jakichkolwiek zamieszania w moim tekście powyżej. Odnoszę się konkretnie do wywołania metody GetType() przed każdą instancją przez System.Activator.CreateInstance(). Dziękuję – Matt