Учитывая вложенный PowerShell пользовательский объект, как это:Как ссылаться родителя в PowerShell собственности сценария
$O = [PSCustomObject]@{
ParentValue = 100
ChildValueArray = @(
[PSCustomObject]@{ Name = 'First'; Value = 1 },
[PSCustomObject]@{ Name = 'Second'; Value = 2 }
)}
Я хотел бы добавить свойство сценария для каждого из объектов в «ChildArray», который ссылается на значение «ParentValue "в окружающем объекте. Концептуально я хотел бы сделать следующее:
$O.ChildValueArray | Add-Member -MemberType ScriptProperty -Name Diff -Value { $this.Value + $parent.ParentValue }
Однако нет $ родителя эквивалентно $ это, что я могу найти.
Есть ли способ, чтобы добиться такого поведения, так что результат:
$O.ChildValueArray | Format-Table -AutoSize
Is:
Name Value Diff
---- ----- ----
First 1 101
Second 2 102
Вместо текущего значения:
Name Value Diff
---- ----- ----
First 1 1
Second 2 2
Я подозреваю, что это не представляется возможным по следующим причинам:
How to reference parent in inline creation of objects?
Почему вы не можете просто использовать '$ O.ParentValue'? –
Я могу! Это была полная заморозка мозга с моей стороны. Первоначальная формулировка проблемы заключалась в том, что я определял ребенка перед родителем, а это означало, что я не мог без него использовать Add-Member для дочернего элемента для ссылки на родителя. Должен быть «Дух!» Значок - вы получаете его за задание непростого вопроса! Спасибо за указание на это! – user1383092
Добро пожаловать. ;) –