Rozszerzanie obiektów danych wyjściowychExtending Output Objects

Można rozłożyć .NET Framework obiektów, które są zwracane przez polecenia cmdlet, funkcje i skrypty za pomocą plików typów (. PS1XML).You can extend the .NET Framework objects that are returned by cmdlets, functions, and scripts by using types files (.ps1xml). Typy plików są plikami opartymi na języku XML, które umożliwiają dodawanie właściwości i metod do istniejących obiektów.Types files are XML-based files that let you add properties and methods to existing objects. Na przykład program Windows PowerShell udostępnia plik XML Types.ps1, który dodaje elementy do kilku istniejących .NET Framework obiektów.For example, Windows PowerShell provides the Types.ps1xml file, which adds elements to several existing .NET Framework objects. Plik XML Types.ps1znajduje się w katalogu instalacyjnym programu Windows PowerShell ( $pshome ).The Types.ps1xml file is located in the Windows PowerShell installation directory ($pshome). Możesz utworzyć własny plik typów, aby rozszerzyć te obiekty lub rozszerzyć inne obiekty.You can create your own types file to further extend those objects or to extend other objects. Po rozszerzeniu obiektu przy użyciu pliku typu, każde wystąpienie obiektu jest rozszerzane o nowe elementy.When you extend an object by using a types file, any instance of the object is extended with the new elements.

Rozszerzanie obiektu System. ArrayExtending the System.Array Object

Poniższy przykład pokazuje, jak program Windows PowerShell rozszerza obiekt System. Array w pliku XML Types.ps1.The following example shows how Windows PowerShell extends the System.Array object in the Types.ps1xml file. Domyślnie obiekty System. Array mają Length Właściwość, która wyświetla liczbę obiektów w tablicy.By default, System.Array objects have a Length property that lists the number of objects in the array. Jednakże, ponieważ nazwa "Length" nie opisuje jasno właściwości, program Windows PowerShell dodaje Count Właściwość aliasu, która wyświetla taką samą wartość jak Length Właściwość.However, because the name "length" does not clearly describe the property, Windows PowerShell adds the Count alias property, which displays the same value as the Length property. Poniższy kod XML dodaje Count Właściwość do typu System. Array .The following XML adds the Count property to the System.Array type.

<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.To see this new alias property, use a Get-Member command on any array, as shown in the following example.

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

Polecenie zwraca następujące wyniki.The command returns the following results.

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ć Count właściwości lub Length właściwości, aby określić, ile obiektów znajduje się w tablicy.You can use either the Count property or the Length property to determine how many objects are in an array. Na przykład:For example:

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

Pliki typów niestandardowychCustom Types Files

Aby utworzyć niestandardowy plik typów, Zacznij od skopiowania istniejącego pliku typów.To create a custom types file, start by copying an existing types file. Nowy plik może mieć dowolną nazwę, ale musi mieć rozszerzenie nazwy pliku. PS1XML.The new file can have any name, but it must have a .ps1xml file name extension. Po skopiowaniu pliku można umieścić nowy plik w dowolnym katalogu, który jest dostępny dla programu Windows PowerShell, ale warto umieścić pliki w katalogu instalacyjnym programu Windows PowerShell ( $pshome ) lub w podkatalogu katalogu instalacyjnego.When you copy the file, you can place the new file in any directory that is accessible to Windows PowerShell, but it is useful to place the files in the Windows PowerShell installation directory ($pshome) or in a subdirectory of the installation directory.

Aby dodać własne rozszerzone typy do pliku, Dodaj element Types dla każdego obiektu, który ma zostać rozszerzony.To add your own extended types to the file, add a types element for each object that you want to extend. W poniższych tematach przedstawiono przykłady.The following topics provide examples.

Po zdefiniowaniu własnych typów rozszerzonych należy użyć jednej z następujących metod, aby zapewnić dostęp do rozszerzonych obiektów:After you define your own extended types, use one of the following methods to make your extended objects available:

  • Aby plik rozszerzonych typów był dostępny dla bieżącej sesji, należy użyć polecenia cmdlet Update-TypeData w celu dodania nowego pliku.To make your extended types file available to the current session, use the Update-TypeData cmdlet to add the new file. Jeśli chcesz, aby typy miały pierwszeństwo przed typami, które są zdefiniowane w innych typach plików (w tym Types.ps1pliku XML), użyj PrependData parametru polecenia cmdlet Update-TypeData .If you want your types to take precedence over the types that are defined in other types files (including the Types.ps1xml file), use the PrependData parameter of the Update-TypeData cmdlet.
  • Aby plik rozszerzonych typów był dostępny 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.To make your extended types file available to all future sessions, add the types file to a module, export the current session, or add the Update-TypeData command to your Windows PowerShell profile.

Pliki typów podpisywaniaSigning Types Files

Typy plików powinny być podpisane cyfrowo, aby zapobiec naruszeniu, ponieważ kod XML może zawierać bloki skryptów.Types files should be digitally signed to prevent tampering because the XML can include script blocks. Aby uzyskać więcej informacji na temat dodawania podpisów cyfrowych, zobacz about_SigningFor more information about adding digital signatures, see about_Signing

Zobacz teżSee Also

Definiowanie właściwości domyślnych dla obiektówDefining Default Properties for Objects

Definiowanie metod domyślnych dla obiektówDefining Default Methods for Objects

Definiowanie domyślnych zestawów elementów członkowskich dla obiektówDefining Default Member Sets for Objects

Pisanie polecenia cmdlet programu Windows PowerShellWriting a Windows PowerShell Cmdlet