Dela via


Utöka utdataobjekt

Du kan utöka .NET Framework objekt som returneras av cmdlets, funktioner och skript med hjälp av filtyper (.ps1xml). Typer av filer är XML-baserade filer som gör att du kan lägga till egenskaper och metoder i befintliga objekt. Till exempel Windows PowerShell types.ps1xml-filen, som lägger till element till flera befintliga .NET Framework objekt. Filen Types.ps1xml finns i Windows PowerShell installationskatalog ( $pshome ). Du kan skapa egna typer av filer för att utöka objekten ytterligare eller utöka andra objekt. När du utökar ett objekt med hjälp av en types-fil utökas alla instanser av objektet med de nya elementen.

Utöka System.Array-objektet

I följande exempel visas Windows PowerShell utökar objektet System.Array i filen Types.ps1xml. Som standard har System.Array-objekt Length en egenskap som visar antalet objekt i matrisen. Men eftersom namnet "length" inte tydligt beskriver egenskapen lägger Windows PowerShell aliasegenskapen, som visar samma Count värde som Length egenskapen. Följande XML lägger till Count egenskapen till typen System.Array.

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

Om du vill se den här nya aliasegenskapen använder du kommandot Get-Member i valfri matris, som du ser i följande exempel.

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

Kommandot returnerar följande resultat.

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

Du kan använda antingen Count egenskapen eller egenskapen för att avgöra hur många objekt som finns i en Length matris. Exempel:

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

Filer för anpassade typer

Om du vill skapa en fil med anpassade typer börjar du med att kopiera en befintlig typfil. Den nya filen kan ha vilket namn som helst, men den måste ha filnamnstillägget .ps1xml. När du kopierar filen kan du placera den nya filen i valfri katalog som är tillgänglig för Windows PowerShell, men det är användbart att placera filerna i Windows PowerShell-installationskatalogen ( ) eller i en underkatalog i $pshome installationskatalogen.

Om du vill lägga till egna utökade typer i filen lägger du till ett types-element för varje objekt som du vill utöka. Följande avsnitt innehåller exempel.

När du har definierat dina egna utökade typer använder du någon av följande metoder för att göra dina utökade objekt tillgängliga:

  • Om du vill göra filen med utökade typer tillgänglig för den aktuella sessionen använder du cmdleten Update-TypeData för att lägga till den nya filen. Om du vill att dina typer ska ha företräde framför de typer som definieras i andra typer av filer (inklusive types.ps1xml-filen) använder du parametern för PrependData cmdleten Update-TypeData.
  • Om du vill göra filen med utökade typer tillgänglig för alla framtida sessioner lägger du till filtyperna i en modul, exporterar den aktuella sessionen eller lägger till kommandot Update-TypeData i din Windows PowerShell profil.

Filer för signeringstyper

Typer av filer bör signeras digitalt för att förhindra manipulering eftersom XML-filen kan innehålla skriptblock. Mer information om hur du lägger till digitala signaturer finns i about_Signing

Se även

Definiera standardegenskaper för objekt

Definiera standardmetoder för objekt

Definiera standardmedlemsuppsättningar för objekt

Skriva en Windows PowerShell-cmdlet