Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
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 elementów członkowskich, zobacz rozszerzonych zestawów elementów członkowskich.
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
PrependDatapolecenia 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