Могут ли модификаторы доступа влиять на отражение?

Я всегда верил, что они это сделали, но, видя некоторые ответы, я сомневаюсь ...

Могу ли я получить доступ к закрытым полям/свойствам/методам извне класса через отражение?

0
добавлено
Просмотры: 41

4 ответы

Да, вы можете, просто укажите модификатор доступа в BindingFlags при доступе к ним.

0
добавлено

Да, вы можете получить доступ к закрытым полям через отражение. Таким образом, многие ORM собираются заселять объект, не пройдя через ваши свойства (который будет вызывать бизнес-логику, которую вы, возможно, не планировали запускать при загрузке объекта).

Модификаторы доступа - это не форма безопасности!

0
добавлено
Однако приложение, вероятно, нуждается в полном доверии (или, по крайней мере, ReflectionPermission).
добавлено автор Lucas, источник

Однако вам нужны дополнительные разрешения для доступа к частным/защищенным/внутренним полям/свойствам/методам извне класса через отражение.

0
добавлено
Да, приложение нуждается в полном доверии (или, по крайней мере, ReflectionPermission).
добавлено автор Lucas, источник

Да, вы можете: но вы действительно должны задать себе вопрос, почему вы собираетесь :)

На самом деле существует только один случай, когда он может иметь смысл, и это UnitTest.

0
добавлено