Rozšíření výstupních objektů

Objekty objektů .NET Framework, které vrací rutiny, funkce a skripty, můžete rozšířit pomocí souborů typů (.ps1xml). Soubory typů jsou soubory založené na souborech XML, které umožňují přidat vlastnosti a metody do existujících objektů. Například Windows PowerShell soubor Types.ps1xml, který přidá prvky do několika existujících objektů .NET Framework objektů. Soubor Types.ps1xml se nachází v Windows PowerShell adresáři ( $pshome ). Můžete vytvořit vlastní soubor typů pro další rozšíření těchto objektů nebo rozšíření dalších objektů. Když rozšíříte objekt pomocí souboru typů, každá instance objektu je rozšířena o nové prvky.

Rozšíření objektu System.Array

Následující příklad ukazuje, Windows PowerShell rozšiřuje objekt System.Array v souboru Types.ps1xml. Objekty System.Array mají ve výchozím nastavení vlastnost, která uvádí počet Length objektů v poli. Vzhledem k tomu, že název "length" jasně nepopisuje vlastnost , Windows PowerShell vlastnost alias, která zobrazuje stejnou hodnotu Count jako Length vlastnost . Následující kód XML přidá Count vlastnost do typu System.Array.

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

Pokud chcete zobrazit tuto novou vlastnost aliasu, použijte příkaz Get-Member pro libovolné pole, jak je znázorněno v následujícím příkladu.

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

Příkaz vrátí následující výsledky.

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

K určení, kolik objektů je v poli, můžete použít buď vlastnost , Count Length nebo vlastnost . Například:

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

Soubory vlastních typů

Pokud chcete vytvořit soubor vlastních typů, začněte zkopírováním existujícího souboru typů. Nový soubor může mít libovolný název, ale musí mít příponu .ps1xml. Při kopírování souboru můžete nový soubor umístit do libovolného adresáře, který je přístupný pro Windows PowerShell, ale je užitečné umístit soubory do instalačního adresáře Windows PowerShell ( ) nebo do podadresáře $pshome instalačního adresáře.

Pokud chcete do souboru přidat vlastní rozšířené typy, přidejte element types pro každý objekt, který chcete rozšířit. Příklady najdete v následujících tématech.

Po definování vlastních rozšířených typů použijte jednu z následujících metod, aby vaše rozšířené objekty k dispozici:

  • Pokud chcete soubor rozšířených typů zajistit pro aktuální relaci, přidejte nový soubor pomocí rutiny Update-TypeData. Pokud chcete, aby vaše typy měli přednost před typy, které jsou definované v jiných typech souborů (včetně souboru Types.ps1xml), použijte parametr rutiny PrependData Update-TypeData.
  • Pokud chcete soubor rozšířených typů zajistit pro všechny budoucí relace, přidejte soubor types do modulu, vyexportujte aktuální relaci nebo do svého profilu přidejte Windows PowerShell Update-TypeData.

Soubory typů podepisování

Typy souborů by měly být digitálně podepsané, aby se zabránilo manipulaci, protože XML může obsahovat bloky skriptu. Další informace o přidávání digitálních podpisů najdete v about_Signing

Viz také

Definování výchozích vlastností pro objekty

Definování výchozích metod pro objekty

Definování výchozích sad členství pro objekty

Vytvoření rutiny Windows PowerShellu