Sdílet prostřednictvím


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

Objekty rozhraní .NET Framework vrácené rutinami, funkcemi a skripty můžete rozšířit pomocí typů souborů (.ps1xml). Typy souborů jsou soubory založené na jazyce XML, které umožňují přidat vlastnosti a metody do existujících objektů. Například Windows PowerShell poskytuje soubor Types.ps1xml, který přidává elementy do několika existujících objektů rozhraní .NET Framework. Soubor Types.ps1xml se nachází v instalačním adresáři Windows PowerShellu ($PSHOME). Můžete vytvořit vlastní soubor typů, který tyto objekty dále rozšíří nebo rozšíří další objekty. Když objekt rozšíříte pomocí souboru typů, všechny instance objektu se rozšíří o nové prvky.

Rozšíření objektu System.Array

Následující příklad ukazuje, jak Windows PowerShell rozšiřuje objekt System.Array v souboru Types.ps1xml. Ve výchozím nastavení mají objekty System.Array vlastnost Length, která uvádí počet objektů v poli. Vzhledem k tomu, že název "length" vlastnost jasně nepopisuje, windows PowerShell přidá vlastnost aliasu Count, která zobrazí stejnou hodnotu jako vlastnost Length. Následující xml přidá Count vlastnost do System.Array typ.

<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 u libovolného 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í počtu objektů v poli můžete použít vlastnost Count nebo vlastnost Length. 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 názvu souboru .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 PowerShellu ($PSHOME) nebo do podadresáře instalačního adresáře.

Pokud chcete do souboru přidat vlastní rozšířené typy, přidejte prvek typů pro každý objekt, který chcete rozšířit. Následující témata obsahují příklady.

Po definování vlastních rozšířených typů pomocí jedné z následujících metod zpřístupníte rozšířené objekty:

  • K zpřístupnění souboru rozšířených typů pro aktuální relaci použijte rutinu Update-TypeData a přidejte nový soubor. Pokud chcete, aby typy byly přednost před typy definovanými v jiných typech souborů (včetně souboru Types.ps1xml), použijte parametr PrependData rutiny Update-Type Data.
  • Chcete-li soubor rozšířených typů zpřístupnit pro všechny budoucí relace, přidejte soubor typů do modulu, exportujte aktuální relaci nebo přidejte příkaz Update-TypeData do profilu Prostředí Windows PowerShell.

Soubory typů podepisování

Soubory typů by měly být digitálně podepsané, aby se zabránilo manipulaci, protože XML může obsahovat bloky skriptů. Další informace o přidávání digitálních podpisů najdete v tématu 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 členů pro objekty

psaní rutiny Prostředí Windows PowerShell