Udostępnij za pomocą


Rozszerzanie obiektów danych wyjściowych

Można rozszerzyć obiekty programu .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 program Windows PowerShell udostępnia plik Types.ps1xml, który dodaje elementy do kilku istniejących obiektów programu .NET Framework. Plik Types.ps1xml znajduje się w katalogu instalacyjnym programu Windows PowerShell ($PSHOME). Możesz utworzyć własny plik typów, aby dodatkowo rozszerzyć te obiekty lub rozszerzyć inne obiekty. Po rozszerzeniu obiektu przy użyciu pliku typów każde wystąpienie obiektu zostanie rozszerzone o nowe elementy.

Rozszerzanie obiektu System.Array

W poniższym przykładzie pokazano, jak program Windows PowerShell rozszerza obiekt System.Array w pliku Types.ps1xml. Domyślnie obiekty System.Array mają właściwość Length, która zawiera listę liczby obiektów w tablicy. Jednak ponieważ nazwa "length" nie opisuje wyraźnie właściwości, program Windows PowerShell dodaje właściwość aliasu Count, która wyświetla tę samą wartość co właściwość Length. Poniższy kod XML dodaje właściwość Count 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żesz użyć właściwości Count lub właściwości 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, zacznij 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 ($PSHOME) lub w podkatalogu katalogu instalacyjnego.

Aby dodać własne typy rozszerzone do pliku, dodaj element types dla każdego obiektu, który chcesz rozszerzyć. W poniższych tematach przedstawiono 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 typach plików (w tym pliku Types.ps1xml), użyj parametru PrependData polecenia 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 programu Windows PowerShell.

Pliki typów podpisywania

Typy plikó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 domyślnych właściwości dla obiektów

definiowanie domyślnych metod dla obiektów

definiowanie domyślnych zestawów składowych dla obiektów

pisanie polecenia cmdlet programu Windows PowerShell