Extending Properties for Objects (Expandir Propriedades para Objetos)
Ao estender .NET Framework objetos, pode adicionar propriedades de pseudónimos, propriedades de código, propriedades de notas, propriedades de script e conjuntos de propriedades aos objetos. O XML que define estas propriedades é descrito nas seguintes secções.
Nota
Os exemplos nas seguintes secções são do ficheiro de tipos predefinidos Types.ps1xml
no diretório de instalação PowerShell $PSHOME
(). Para mais informações, consulte About Types.ps1xml.
Propriedades de alias
Uma propriedade de pseudónimo define um novo nome para uma propriedade existente.
No exemplo seguinte, a propriedade Count é adicionada ao tipo System.Array. O elemento AliasProperty define a propriedade estendida como uma propriedade de alias. O elemento Nome especifica o novo nome. E, o elemento nome de referência do Member, especifica a propriedade existente que é referenciada pelo pseudónimo. Também pode adicionar o AliasProperty
elemento aos membros do elemento 'Conjuntos de Membros'.
<Type>
<Name>System.Array</Name>
<Members>
<AliasProperty>
<Name>Count</Name>
<ReferencedMemberName>Length</ReferencedMemberName>
</AliasProperty>
</Members>
</Type>
Propriedades de código
Uma propriedade de código refere uma propriedade estática de um objeto .NET Framework.
No exemplo seguinte, a propriedade Mode é adicionada ao tipo System.IO.DirectoryInfo. O elemento CodeProperty define a propriedade estendida como uma propriedade de código. O elemento Nome especifica o nome da propriedade estendida. E, o elemento GetCodeReference define o método estático que é referenciado pela propriedade estendida. Também pode adicionar o CodeProperty
elemento aos membros do elemento 'Conjuntos de Membros'.
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<CodeProperty>
<Name>Mode</Name>
<GetCodeReference>
<TypeName>Microsoft.PowerShell.Commands.FileSystemProvider</TypeName>
<MethodName>Mode</MethodName>
</GetCodeReference>
</CodeProperty>
</Members>
</Type>
Propriedades de nota
Uma propriedade de nota define um imóvel que tem um valor estático.
No exemplo seguinte, a propriedade Status, cujo valor é sempre Sucesso, é adicionada ao tipo System.IO.DirectoryInfo. O elemento NoteProperty define a propriedade estendida como uma propriedade de nota. O elemento Nome especifica o nome da propriedade estendida. O elemento Valor especifica o valor estático da propriedade estendida. O NoteProperty
elemento também pode ser adicionado aos membros do elemento 'Conjuntos de Membros'.
<Type>
<Name>System.IO.DirectoryInfo</Name>
<Members>
<NoteProperty>
<Name>Status</Name>
<Value>Success</Value>
</NoteProperty>
</Members>
</Type>
Propriedades do script
Uma propriedade de script define uma propriedade cujo valor é a saída de um script.
No exemplo seguinte, a propriedade VersionInfo é adicionada ao tipo System.IO.FileInfo. O elemento ScriptProperty define a propriedade estendida como uma propriedade de script. O elemento Nome especifica o nome da propriedade estendida. E, o elemento GetScriptBlock especifica o script que gera o valor da propriedade. Também pode adicionar o ScriptProperty
elemento aos membros do elemento 'Conjuntos de Membros'.
<Type>
<Name>System.IO.FileInfo</Name>
<Members>
<ScriptProperty>
<Name>VersionInfo</Name>
<GetScriptBlock>
[System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
</GetScriptBlock>
</ScriptProperty>
</Members>
</Type>
Conjuntos de propriedades
Um conjunto de propriedades define um grupo de propriedades estendidas que podem ser referenciadas pelo nome do conjunto. Por exemplo, o parâmetro Propriedade Format-Table pode especificar uma propriedade específica a ser exibida. Quando um conjunto de propriedades é especificado, apenas as propriedades que pertencem ao conjunto são exibidas.
Não há restrição no número de conjuntos de propriedades que podem ser definidos para um objeto. No entanto, os conjuntos de propriedades utilizados para definir as propriedades de exibição predefinidas de um objeto devem ser especificados dentro do conjunto de membros psStandardMem. No Types.ps1xml
ficheiro de tipos, os nomes de conjuntos de propriedade predefinidos incluem DefaultDisplayProperty, DefaultDisplayPropertySet e DefaultKeyPropertySet. Quaisquer conjuntos de propriedades adicionais que adicione ao conjunto de membros psStandardMembers são ignorados.
No exemplo seguinte, o conjunto de propriedades DefaultDisplayPropertySet é adicionado ao conjunto de membros PSStandardMembers do tipo System.Serviceprocess.Servicecontroller. O elemento PropertySet define o grupo de propriedades. O elemento Nome especifica o nome do conjunto de propriedades. E, o elemento ReferencedProperties especifica as propriedades do conjunto. Também pode adicionar o PropertySet
elemento aos membros do elemento Tipo.
<Type>
<Name>System.ServiceProcess.ServiceController</Name>
<Members>
<MemberSet>
<Name>PSStandardMembers</Name>
<Members>
<PropertySet>
<Name>DefaultDisplayPropertySet</Name>
<ReferencedProperties>
<Name>Status</Name
<Name>Name</Name>
<Name>DisplayName</Name>
</ReferencedProperties>
</PropertySet>
</Members>
</MemberSet>
</Members>
</Type>
Ver também
Writing a Windows PowerShell Cmdlet (Escrever um Cmdlet do Windows PowerShell)
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários