2010-08-22 1 views
2

В .NET, являются частными методами и свойствами, исполняемыми во время выполнения или только компилятором?В .NET, как ограничивается доступ к закрытым методам?

Если вы попытаетесь вызвать частные методы другого объекта, компилятор будет генерировать исключение доступа. Что делать, если вы вручную манипулируете IL или пытаетесь вызвать через отражение - сможете ли вы? Кроме того, это зависит от версии исполнения (1.1 против 2.0 против 3.5 против 4.0)?

ответ

4

Это ограничение времени компиляции. Вы можете вызвать частные методы через Reflection во всех версиях .NET. Начиная с .NET 4.0, вы можете использовать dynamics, чтобы сделать это. Кроме того, используя Reflection, вы можете видеть и использовать методы автоматических свойств. Разумеется, это не рекомендуется.