简单地说,有没有一种方法可以引用 psobject 声明文字内的(现有)属性值,基本上就像这样?
[pscustomobject] @{
Number = 5
IsLessThanZero = $this.Number -lt 0
}
使用
ScriptProperty
,通过 Update-TypeData
:
$updateTypeDataSplat = @{
TypeName = 'myType'
MemberName = 'IsLessThanZero'
Value = { $this.Number -lt 0 }
MemberType = 'ScriptProperty'
}
Update-TypeData @updateTypeDataSplat
$myObject = [pscustomobject] @{
Number = 5
PSTypeName = 'myType'
}
$myObject
或者将
ScriptProperty
添加到 psobject
本身:
$myObject = [pscustomobject] @{
Number = 5
}
$myObject.PSObject.Members.Add([psscriptproperty]::new(
'IsLessThanZero', { $this.Number -lt 0 }))
$myObject