Разница между свойствами объекта, отображаемого в отладчике, и свойств в Intellisense - PullRequest
2 голосов
/ 17 сентября 2010

Когда я проверяю объект в отладчике, я вижу гораздо больше свойств в отладчике, чем то, что доступно в Intellisense или коде.

Например, объект Page в ASP.NET в отладчике показывает свойство RelativeFilePath, которое имеет значение. Но когда я пытаюсь использовать его в коде, его не существует. Это почему?

Я искал свойство RelativeFilePath в MSDN, оно существует для мобильных элементов управления. Не уверен, почему он появляется в отладчике для обычного элемента управления asp.net.

Ответы [ 3 ]

3 голосов
/ 17 сентября 2010

Отладчик и intellisense имеют совершенно разные цели с точки зрения того, что они хотят отображать.

Intellisense пытается предоставить набор членов, которые могут быть корректно вызваны для объекта. Существенно доступные члены и методы расширения. Цель здесь - помочь пользователю написать правильный код.

Отладчик пытается проверить состояние объекта во время выполнения. Он мало заботится о доступности и вместо этого выставляет всю относительную информацию для отображения. Это даже позволяет настроить отображение с помощью пользовательских расширений. Это означает, что вы часто будете видеть элементы, которые просто не существуют на объекте или недоступны из кода пользователя.

Последний вступает в игру по вашему сценарию. Тип Page действительно имеет свойство RelativeFilePath. Но это внутреннее, которое недоступно вашему коду и, следовательно, Intellisense не отображает его. Отладчик не учитывает доступность для отображения элемента и, следовательно, предоставляет значение.

0 голосов
/ 17 сентября 2010

Полагаю, это потому, что это защищенная или частная собственность, к которой у вас нет доступа.По этой причине вы не можете использовать его в коде, но вы можете увидеть его в отладчике.

0 голосов
/ 17 сентября 2010

Существует несколько атрибутов, которые можно прикрепить к типу для лучшей поддержки отладки.Возможно, один из них - то, что вы видите?

http://msdn.microsoft.com/en-us/library/ms228992.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...