Eigenschappen voor objecten uitbreiden

Wanneer u de .NET Framework uitbreidt, kunt u aliaseigenschappen, code-eigenschappen, notitie-eigenschappen, 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 Types.ps1xml standaardtypebestand in de PowerShell-installatiemap ( $PSHOME ). Zie Over Types.ps1xml voor meer informatie.

Aliaseigenschappen

Een alias-eigenschap 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 aliaseigenheid. Het element Naam geeft de nieuwe naam op. En het element ReferencedMemberName specificeert de bestaande eigenschap waarnaar wordt verwezen door de alias. U kunt het element ook AliasProperty toevoegen aan de leden van het element MemberSets.

<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 ook CodeProperty toevoegen aan de leden van het element MemberSets.

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

Noteer eigenschappen

Een notitie-eigenschap definieert een eigenschap met een statische waarde.

In het volgende voorbeeld wordt de eigenschap Status, waarvan de waarde altijd Geslaagd is, toegevoegd aan het type System.IO.DirectoryInfo. Het element NoteProperty definieert de uitgebreide eigenschap als een notitie-eigenschap. Het element Naam geeft de naam van de uitgebreide eigenschap op. Het element Waarde geeft de statische waarde van de uitgebreide eigenschap aan. Het NoteProperty element 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 script-eigenschap 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 scripteigenheid. Het element Naam geeft de naam van de uitgebreide eigenschap op. En het element GetScriptBlock geeft het script op dat de eigenschapswaarde genereert. U kunt het element ook ScriptProperty toevoegen aan de leden van het element MemberSets.

<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 eigenschappenset 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 voor een object kan worden gedefinieerd. De eigenschappensets die worden gebruikt om de standaardweergave-eigenschappen van een object te definiƫren, moeten echter worden opgegeven in de ledenset PSStandardMembers. In het typenbestand bevatten de standaardnamen van Types.ps1xml eigenschappensets DefaultDisplayProperty, DefaultDisplayPropertySet en DefaultKeyPropertySet. Eventuele extra eigenschappensets die u toevoegt aan de ledenset PSStandardMembers worden genegeerd.

In het volgende voorbeeld wordt de eigenschap DefaultDisplayPropertySet toegevoegd aan de ledenset PSStandardMembers van het type System.Serviceprocess.Servicecontroller. Het element PropertySet definieert de groep eigenschappen. Het element Naam geeft de naam van de eigenschappenset aan. En het element ReferencedProperties geeft de eigenschappen van de set op. U kunt het element ook PropertySet 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

Over Types.ps1xml

System.Management.Automation

Een Windows PowerShell-cmdlet schrijven