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