I modificatori di accesso influiscono anche sulla riflessione?
-
01-07-2019 - |
Domanda
Ho sempre creduto di sì, ma vedere alcune risposte qui mi fa dubitare...
Posso accedere a campi/proprietà/metodi privati dall'esterno di una classe attraverso la riflessione?
Soluzione
Sì, puoi accedere ai campi privati tramite riflessione.Questo è il modo in cui molti ORM popolano un oggetto senza passare attraverso le tue proprietà (che invocherà la logica aziendale che potresti non aver intenzione di eseguire su un carico di oggetto).
I modificatori di accesso non sono una forma di sicurezza!
Altri suggerimenti
Tuttavia, sono necessarie autorizzazioni aggiuntive per accedere a campi/proprietà/metodi privati/protetti/interni dall'esterno di una classe attraverso la riflessione.
Sì, puoi, basta specificare il modificatore di accesso in BindingFlags quando accedi.
Si, puoi:ma dovresti davvero chiederti perché lo farai :)
In realtà c'è solo un caso in cui può avere senso e questo è UnitTest.