-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Get-TypeData does not actually get the "IsHidden" state for the given type's members. #27131
Copy link
Copy link
Open
Labels
Needs-TriageThe issue is new and needs to be triaged by a work group.The issue is new and needs to be triaged by a work group.
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
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, ValueExpected 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.0Visuals
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, Definitionproduces 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=HiddenAs 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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Needs-TriageThe issue is new and needs to be triaged by a work group.The issue is new and needs to be triaged by a work group.