Prerequisites
Steps to reproduce
Open a terminal and type in the following (or copy and paste the commands)
$TypeData = [System.Management.Automation.Runspaces.TypeData]::new('Demo')
$VisableMember = [System.Management.Automation.Runspaces.NotePropertyData]::new('VisableMember', 'Visable')
$HiddenMember = [System.Management.Automation.Runspaces.NotePropertyData]::new('HiddenMember', 'Hidden')
$HiddenMember.IsHidden = $true
$VisableMember, $HiddenMember | Select-Object Name, IsHidden, Value
$TypeData.Members.Add($VisableMember.Name, $VisableMember)
$TypeData.Members.Add($HiddenMember.Name, $HiddenMember)
$TypeData.Members.Values | Select-Object Name, IsHidden, Value
Get-TypeData -TypeName 'Demo'
$null -eq (Get-TypeData -TypeName 'Demo')
Update-TypeData -TypeData $TypeData -Force
$null -eq (Get-TypeData -TypeName 'Demo')
$GetTypeDataResult = Get-TypeData -TypeName 'Demo'
$GetTypeDataResult.Members.Values | Select-Object Name, IsHidden, Value
Expected behavior
PS C:\Users\Joseph.Colvin> $GetTypeDataResult = Get-TypeData -TypeName 'Demo'
PS C:\Users\Joseph.Colvin> $GetTypeDataResult.Members.Values | Select-Object Name, IsHidden, Value
Name IsHidden Value
---- -------- -----
VisableMember False Visable
HiddenMember True Hidden
PS C:\Users\Joseph.Colvin>
Actual behavior
PS C:\Users\Joseph.Colvin> $GetTypeDataResult = Get-TypeData -TypeName 'Demo'
PS C:\Users\Joseph.Colvin> $GetTypeDataResult.Members.Values | Select-Object Name, IsHidden, Value
Name IsHidden Value
---- -------- -----
VisableMember False Visable
HiddenMember False Hidden
PS C:\Users\Joseph.Colvin>
Error details
Environment data
Name Value
---- -----
PSVersion 7.6.0
PSEdition Core
GitCommitId 7.6.0
OS Microsoft Windows 10.0.22631
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.4
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Visuals
Testing the Demo TypeData with the following commands
$Demo
$Demo = [PSCustomObject]@{ PSTypeName = 'Demo' }
$Demo.PSTypeNames
$Demo | Get-Member -Name 'VisableMember', 'HiddenMember' | Select-Object Name, Definition
$Demo | Get-Member -Name 'VisableMember', 'HiddenMember' -Force | Select-Object Name, Definition
produces the following output:
Demo
System.Management.Automation.PSCustomObject
System.Object
Name Definition
---- ----------
VisableMember string VisableMember=Visable
Name Definition
---- ----------
VisableMember string VisableMember=Visable
HiddenMember string HiddenMember=Hidden
As you can see from above, to get the hidden member 'HiddenMember' you must use the '-Force' parameter and thus showing it is indeed hidden. Also, no tab completion for the hidden member is available, all as expected.
Only thing unexpected was that the Get-TypeData does not return True for the 'Ishidden' property of the hidden member. This happens even if you provide an PS1XML Types File or from a module.
Prerequisites
Steps to reproduce
Open a terminal and type in the following (or copy and paste the commands)
Expected behavior
Actual behavior
Error details
Environment data
Visuals
Testing the Demo TypeData with the following commands
produces the following output:
As you can see from above, to get the hidden member 'HiddenMember' you must use the '-Force' parameter and thus showing it is indeed hidden. Also, no tab completion for the hidden member is available, all as expected.
Only thing unexpected was that the Get-TypeData does not return True for the 'Ishidden' property of the hidden member. This happens even if you provide an PS1XML Types File or from a module.