Разработка PSProvider: Get-ChildItem вызывает GetItem

У меня есть класс, который расширяетсяContainerCmdletProvider, в котором я переопределил следующие методы:NewDrive,IsValidPath, , , и .

Я могу создать новый диск (New-PSDrive -Name test ...), и успешно дочерние элементы из корня (). Но когда я пробую это на подпути, которая, как я знаю, существует и имеет детей (), я получаю тот же результат, как если бы я запустилGet-Item test:path.

Используя отладчик и устанавливая точки останова, я могу видеть, какие методы вызываются.
ДляGet-ChildItem test:его, , .
ДляGet-ChildItem test:pathего,ItemExists, .

Это ожидаемое поведение? Если да, то как я могу узнать намерение пользователя (просмотр элемента или его дочерних элементов)?
я удивленHasChildItemsне называется.

Чтобы вывестиtest:pathпредмет, из обоихGetChildItemsиGetItem, Я используюWriteItemObject(item, itemPath, true)прохождениеisContainerпометить какtrue.

Я следую руководству «Как создать поставщика Windows PowerShell» от Microsoft. Я ориентируюсь на PowerShell Core (у меня версия 7.3.7), но это единственное руководство, которое я нашел.

0 ответов

Другие вопросы по тегам