Uitvoerobjecten uitbreiden

U kunt de .NET Framework die worden geretourneerd door cmdlets, functies en scripts uitbreiden met behulp van typen bestanden (.ps1xml). Typen bestanden zijn XML-bestanden die u kunt eigenschappen en methoden toevoegen aan bestaande objecten. Zo biedt Windows PowerShell het bestand Types.ps1xml, waarmee elementen worden toegevoegd aan verschillende bestaande .NET Framework objecten. Het bestand Types.ps1xml bevindt zich in de Windows PowerShell-installatiemap ( $pshome ). U kunt uw eigen bestand met typen maken om deze objecten verder uit te breiden of om andere objecten uit te breiden. Wanneer u een object uitbreidt met behulp van een bestand met typen, wordt elk exemplaar van het object uitgebreid met de nieuwe elementen.

Het System.Array-object uitbreiden

In het volgende voorbeeld ziet u Windows PowerShell het object System.Array in het bestand Types.ps1xml uitbreidt. System.Array-objecten hebben standaard een eigenschap die het aantal objecten Length in de matrix vermeldt. Omdat de naam 'length' de eigenschap niet duidelijk beschrijft, voegt Windows PowerShell de alias-eigenschap toe, die dezelfde waarde weschrijft Count als de Length eigenschap . Met de volgende XML wordt de Count eigenschap toegevoegd aan het type System.Array.

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

Als u deze nieuwe alias-eigenschap wilt zien, gebruikt u de opdracht Get-Member in een matrix, zoals wordt weergegeven in het volgende voorbeeld.

Get-Member -InputObject (1,2,3,4)

De opdracht retourneert de volgende resultaten.

Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object& Address(Int32 )
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(Array array, Int32 index):
Equals         Method        System.Boolean Equals(Object obj)
Get            Method        System.Object Get(Int32 )
...
Length         Property      System.Int32 Length {get;}

U kunt de eigenschap Count of de eigenschap gebruiken om te bepalen hoeveel objecten zich in een matrix Length hebben. Bijvoorbeeld:

PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4

Bestanden met aangepaste typen

Als u een bestand met aangepaste typen wilt maken, begint u met het kopiëren van een bestaand typenbestand. Het nieuwe bestand kan elke naam hebben, maar moet de bestandsextensie .ps1xml hebben. Wanneer u het bestand kopieert, kunt u het nieuwe bestand in elke map plaatsen die toegankelijk is voor Windows PowerShell, maar het is handig om de bestanden in de Windows PowerShell-installatiemap ( ) of in een submap van de installatiemap te $pshome plaatsen.

Als u uw eigen uitgebreide typen wilt toevoegen aan het bestand, voegt u een element types toe voor elk object dat u wilt uitbreiden. De volgende onderwerpen bieden voorbeelden.

  • Zie Uitgebreide eigenschappen voor meer informatie over het toevoegen van eigenschappen en eigenschappensets

  • Zie Uitgebreide methoden voor meer informatie over het toevoegen van methoden.

  • Zie Uitgebreide ledensets voor meer informatie over het toevoegen van lidsets.

Nadat u uw eigen uitgebreide typen hebt definieert, gebruikt u een van de volgende methoden om uw uitgebreide objecten beschikbaar te maken:

  • Als u het bestand met uitgebreide typen beschikbaar wilt maken voor de huidige sessie, gebruikt u de cmdlet Update-TypeData om het nieuwe bestand toe te voegen. Als u wilt dat uw typen voorrang krijgen boven de typen die zijn gedefinieerd in andere typen bestanden (inclusief het bestand Types.ps1xml), gebruikt u de parameter van de PrependData cmdlet Update-TypeData.
  • Als u het bestand met uitgebreide typen beschikbaar wilt maken voor alle toekomstige sessies, voegt u het typenbestand toe aan een module, exporteert u de huidige sessie of voegt u de opdracht Update-TypeData toe aan uw Windows PowerShell-profiel.

Bestanden voor ondertekeningstypen

Typen bestanden moeten digitaal worden ondertekend om manipulatie te voorkomen, omdat de XML scriptblokken kan bevatten. Zie voor meer informatie over het toevoegen van digitale handtekeningen about_Signing

Zie ook

Standaardeigenschappen voor objecten definiëren

Standaardmethoden voor objecten definiëren

Standaardledenreeksen voor objecten definiëren

Een Windows PowerShell-cmdlet schrijven