Delen via


Eigenschappen voor objecten uitbreiden

Wanneer u .NET Framework-objecten uitbreidt, kunt u aliaseigenschappen, code-eigenschappen, opmerkingseigenschappen, scripteigenschappen en eigenschappensets toevoegen aan de objecten. De XML die deze eigenschappen definieert, wordt beschreven in de volgende secties.

Notitie

De voorbeelden in de volgende secties zijn afkomstig uit het standaardbestand Types.ps1xml typen in de Installatiemap van PowerShell ($PSHOME). Zie Over types.ps1xmlvoor meer informatie.

Aliaseigenschappen

Een aliaseigenschap definieert een nieuwe naam voor een bestaande eigenschap.

In het volgende voorbeeld wordt de eigenschap Count toegevoegd aan het type System.Array. Het element AliasProperty definieert de uitgebreide eigenschap als een aliaseigenschap. Het element Naam geeft de nieuwe naam op. En het element ReferencedMemberName geeft de bestaande eigenschap op waarnaar wordt verwezen door de alias. U kunt het element AliasProperty ook toevoegen aan de leden van het MemberSets-element.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>Length</ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

Code-eigenschappen

Een code-eigenschap verwijst naar een statische eigenschap van een .NET Framework-object.

In het volgende voorbeeld wordt de eigenschap Mode toegevoegd aan het type System.IO.DirectoryInfo. Het element CodeProperty definieert de uitgebreide eigenschap als een code-eigenschap. Het element Naam geeft de naam van de uitgebreide eigenschap op. En het element GetCodeReference definieert de statische methode waarnaar wordt verwezen door de uitgebreide eigenschap. U kunt het element CodeProperty ook toevoegen aan de leden van het MemberSets-element.

<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>

Opmerkingseigenschappen

Een notitieeigenschap definieert een eigenschap met een statische waarde.

In het volgende voorbeeld wordt de eigenschap Status, waarvan de waarde altijd Successis, toegevoegd aan het type System.IO.DirectoryInfo. Het element NoteProperty definieert de uitgebreide eigenschap als een notitieeigenschap. Het element Naam geeft de naam van de uitgebreide eigenschap op. Het element waarde geeft de statische waarde van de uitgebreide eigenschap aan. Het element NoteProperty kan ook worden toegevoegd aan de leden van het element MemberSets.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <NoteProperty>
      <Name>Status</Name>
      <Value>Success</Value>
    </NoteProperty>
  </Members>
</Type>

Scripteigenschappen

Een scripteigenschap definieert een eigenschap waarvan de waarde de uitvoer van een script is.

In het volgende voorbeeld wordt de eigenschap VersionInfo toegevoegd aan het type System.IO.FileInfo. Het element ScriptProperty definieert de uitgebreide eigenschap als een scripteigenschap. Het element Naam geeft de naam van de uitgebreide eigenschap op. En het element GetScriptBlock geeft het script op waarmee de eigenschapswaarde wordt gegenereerd. U kunt het element ScriptProperty ook toevoegen aan de leden van het MemberSets-element.

<Type>
  <Name>System.IO.FileInfo</Name>
  <Members>
    <ScriptProperty>
      <Name>VersionInfo</Name>
      <GetScriptBlock>
        [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
      </GetScriptBlock>
    </ScriptProperty>
  </Members>
</Type>

Eigenschappensets

Een eigenschappenset definieert een groep uitgebreide eigenschappen waarnaar kan worden verwezen door de naam van de set. De parameter Format-TableProperty kan bijvoorbeeld een specifieke eigenschap opgeven die moet worden weergegeven. Wanneer een eigenschappenset is opgegeven, worden alleen de eigenschappen weergegeven die deel uitmaken van de set.

Er is geen beperking voor het aantal eigenschappensets dat kan worden gedefinieerd voor een object. De eigenschappensets die worden gebruikt om de standaardweergave-eigenschappen van een object te definiƫren, moeten echter worden opgegeven in de PSStandardMembers ledenset. In het bestand Types.ps1xml typen zijn de standaardnamen van de eigenschappenset DefaultDisplayProperty, DefaultDisplayPropertySeten DefaultKeyPropertySet. Eventuele extra eigenschappensets die u aan de PSStandardMembers ledenset toevoegt, worden genegeerd.

In het volgende voorbeeld wordt de eigenschappenset DefaultDisplayPropertySet toegevoegd aan de PSStandardMembers ledenset van het System.ServiceProcess.ServiceController type. Het element PropertySet definieert de groep eigenschappen. Het element Name geeft de naam van de eigenschappenset op. En het element ReferencedProperties geeft de eigenschappen van de set op. U kunt het element PropertySet ook toevoegen aan de leden van het element Type.

<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>

Zie ook

About Types.ps1xml

System.Management.Automation-

Een Windows PowerShell-cmdlet schrijven