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

Sobre tipos.ps1xml

Sistema.Gestão.Automação

Writing a Windows PowerShell Cmdlet (Escrever um Cmdlet do Windows PowerShell)