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.
Další informace o přidávání vlastností a sad vlastností naleznete v tématu Rozšířené vlastnosti
Další informace o přidávání metod naleznete v tématu rozšířené metody.
Další informace o přidávání sad členů naleznete v tématu rozšířené členské sady.
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