Влияют ли модификаторы доступа также на отражение?
-
01-07-2019 - |
Вопрос
Я всегда верил, что они это сделали, но, увидев здесь некоторые ответы, я засомневался...
Могу ли я получить доступ к закрытым полям / свойствам / методам извне класса через отражение?
Решение
Да, вы можете получить доступ к личным полям через reflection.Именно так многие ORM выполняют заполнение объекта, не просматривая ваши свойства (что вызовет бизнес-логику, которую вы, возможно, не собирались запускать при загрузке объекта).
Модификаторы доступа не являются формой безопасности!
Другие советы
Однако вам нужны дополнительные разрешения для доступа к частным / защищенным / внутренним полям / свойствам / методам извне класса посредством отражения.
Да, вы можете, вы просто указываете модификатор доступа в BindingFlags при обращении к ним.
Да, ты можешь:но вам действительно следует спросить себя, зачем вы это делаете :)
На самом деле есть только один случай, когда это может иметь смысл, и это UnitTest.