c # Как вы получаете base.Name от PropertyInfo - PullRequest
2 голосов
/ 09 апреля 2009

Я прошагал через некоторый код и смотрю на объект PropertyInfo и хочу знать, как получить его base.Name

альтернативный текст http://www.yart.com.au/stackoverflow/propertyinfo.png

Я вижу это в отладчике, но я не уверен, как это сделать, так как в PropertyInfo нет свойства "base"

Ответы [ 3 ]

7 голосов
/ 09 апреля 2009

Вы можете получить доступ к этому свойству через property.Name.

Тот факт, что отладчик показывает base.Name, немного ошибочен. В действительности C # EE оценивает свойство. Имя под капотом. Это фактически не оценивает "base.Name".

Это верно независимо от того, является ли свойство / метод виртуальным. Причина в том, что отладчик CLR не предоставляет средств, с помощью которых EE может вызывать виртуальный метод в не виртуальном методе. Для достижения этого эффекта есть способы вызвать метод через relfection, но ни C #, ни VB.Net не идут по этому пути в своих соответствующих EE.

6 голосов
/ 09 апреля 2009

Просто используйте .Name; PropertyInfo не определяет это - он наследует его от MemberInfo

2 голосов
/ 09 апреля 2009

Просто:

property.Name
...