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.
Mer information om hur du lägger till egenskaper och egenskapsuppsättningar finns i Utökade egenskaper
Mer information om hur du lägger till metoder finns i Utökade metoder.
Mer information om hur du lägger till medlemsuppsättningar finns i Utökade medlemsuppsättningar.
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
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för