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.
Aby uzyskać więcej informacji na temat dodawania właściwości i zestawów właściwości, zobacz Właściwości rozszerzone
Aby uzyskać więcej informacji na temat dodawania metod, zobacz Metody rozszerzone.
Aby uzyskać więcej informacji na temat dodawania zestawów członków, zobacz Extended Member Sets.
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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla