jakie są przypadki, kiedy używanie refleksji ma sens ? Mówię o normalnej aplikacji, nie tworzymy biblioteki, ani nic co potrzebuje dostęp w locie do klas. Tworzymy aplikacje od podstaw, ma ona swoją architekturę, wszystko możemy zaplanować itd. W jakich przypadkach refleksje są przydatne ? Tylko gdy chcemy "obejść" coś np. skorzystać z metody prywatnej, manipulować wartościami pól itd.?? Szukam praktycznych zastosowań :)
Jest to rzecz, z której często się nie korzysta ale czasem pozwala rozwiązać zgrabnie problem. Przykład z życia. Miałem aplikację, która łączyła się z ok 20 serwisami (innymi aplikacjami) w każdym zapytaniu trzeba było dodawać dane techniczne, typu nazwa mojej aplikacji, jako klient, login zalogowanego użytkownika, data utworzenia request itp, w sumie ok 10 pól. Problem w tym, że to był XML, więc klasy były generowane i nie miały między sobą dziedziczenia. W planach rozwojowych, miały dochodzić kolejne serwisy do obsługi. Znając nazwy pól i typy danych, mogłem za pomocą refleksji w jednym miejscu zaimplementować uzupełnianie części technicznej i mieć pewność, że w każdym serwisie będzie w ten sam sposób wypełnione.
jakie są przypadki, kiedy używanie refleksji ma sens ? Mówię o normalnej aplikacji, nie tworzymy biblioteki, ani nic co potrzebuje dostęp w locie do klas. Tworzymy aplikacje od podstaw, ma ona swoją architekturę, wszystko możemy zaplanować itd. W jakich przypadkach refleksje są przydatne ? Tylko gdy chcemy "obejść" coś np. skorzystać z metody prywatnej, manipulować wartościami pól itd.?? Szukam praktycznych zastosowań :)
Jest to rzecz, z której często się nie korzysta ale czasem pozwala rozwiązać zgrabnie problem.
Przykład z życia. Miałem aplikację, która łączyła się z ok 20 serwisami (innymi aplikacjami) w każdym zapytaniu trzeba było dodawać dane techniczne, typu nazwa mojej aplikacji, jako klient, login zalogowanego użytkownika, data utworzenia request itp, w sumie ok 10 pól. Problem w tym, że to był XML, więc klasy były generowane i nie miały między sobą dziedziczenia. W planach rozwojowych, miały dochodzić kolejne serwisy do obsługi. Znając nazwy pól i typy danych, mogłem za pomocą refleksji w jednym miejscu zaimplementować uzupełnianie części technicznej i mieć pewność, że w każdym serwisie będzie w ten sam sposób wypełnione.