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.
Další informace o přidávání vlastností a sad vlastností najdete v tématu Rozšířené vlastnosti.
Další informace o přidávání metod najdete v tématu Rozšířené metody.
Další informace o přidávání sad členů najdete v tématu Rozšířené sady členů.
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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro