Rozszerzanie obiektów danych wyjściowych

Możesz rozszerzyć obiekty .NET Framework zwracane przez polecenia cmdlet, funkcje i skrypty przy użyciu plików typów (ps1xml). Pliki typów to pliki oparte na formacie XML, które umożliwiają dodawanie właściwości i metod do istniejących obiektów. Na przykład Windows PowerShell plik Types.ps1xml, który dodaje elementy do kilku istniejących .NET Framework obiektów. Plik Types.ps1xml znajduje się w Windows PowerShell instalacji systemu ( $pshome ). Możesz utworzyć własny plik typów, aby jeszcze bardziej rozszerzyć te obiekty lub rozszerzyć inne obiekty. W przypadku rozszerzania obiektu przy użyciu pliku typów każde wystąpienie obiektu jest rozszerzane o nowe elementy.

Rozszerzanie obiektu System.Array

W poniższym przykładzie pokazano, Windows PowerShell rozszerza obiekt System.Array w pliku Types.ps1xml. Domyślnie obiekty System.Array mają właściwość Length , która wyświetla liczbę obiektów w tablicy. Jednak ponieważ nazwa "length" nie opisuje wyraźnie właściwości , Windows PowerShell dodaje właściwość aliasu, która wyświetla taką samą wartość Count jak Length właściwość . Poniższy kod XML dodaje Count właściwość do typu System.Array.

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

Aby wyświetlić tę nową właściwość aliasu, użyj polecenia Get-Member w dowolnej tablicy, jak pokazano w poniższym przykładzie.

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

Polecenie zwraca następujące wyniki.

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

Można użyć właściwości lub właściwości , Count Length aby określić, ile obiektów znajduje się w tablicy. Na przykład:

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

Pliki typów niestandardowych

Aby utworzyć plik typów niestandardowych, rozpocznij od skopiowania istniejącego pliku typów. Nowy plik może mieć dowolną nazwę, ale musi mieć rozszerzenie nazwy pliku ps1xml. Podczas kopiowania pliku można umieścić nowy plik w dowolnym katalogu dostępnym dla programu Windows PowerShell, ale warto umieścić pliki w katalogu instalacyjnym programu Windows PowerShell ( ) lub w podkatalogu katalogu $pshome instalacji.

Aby dodać własne typy rozszerzone do pliku, dodaj element types dla każdego obiektu, który chcesz rozszerzyć. Poniższe tematy zawierają przykłady.

Po zdefiniowaniu własnych typów rozszerzonych użyj jednej z następujących metod, aby udostępnić obiekty rozszerzone:

  • Aby udostępnić plik typów rozszerzonych w bieżącej sesji, użyj polecenia cmdlet Update-TypeData, aby dodać nowy plik. Jeśli chcesz, aby typy miały pierwszeństwo przed typami zdefiniowanymi w innych plikach typów (w tym pliku Types.ps1xml), użyj parametru polecenia PrependData cmdlet Update-TypeData.
  • Aby udostępnić plik typów rozszerzonych dla wszystkich przyszłych sesji, dodaj plik typów do modułu, wyeksportuj bieżącą sesję lub dodaj polecenie Update-TypeData do profilu Windows PowerShell danych.

Pliki typów podpisywania

Pliki typów powinny być podpisane cyfrowo, aby zapobiec manipulacji, ponieważ kod XML może zawierać bloki skryptów. Aby uzyskać więcej informacji na temat dodawania podpisów cyfrowych, zobacz about_Signing

Zobacz też

Definiowanie właściwości domyślnych dla obiektów

Definiowanie metod domyślnych dla obiektów

Definiowanie domyślnych zestawów elementów członkowskich dla obiektów

Pisanie polecenia cmdlet programu Windows PowerShell