Rozšíření vlastností pro objekty

Když rozšíříte .NET Framework objektů, můžete do objektů přidat vlastnosti aliasu, vlastnosti kódu, vlastnosti poznámek, vlastnosti skriptu a sady vlastností. Kód XML, který definuje tyto vlastnosti, je popsán v následujících částech.

Poznámka

Příklady v následujících částech jsou ze souboru Types.ps1xml výchozích typů v instalačním adresáři PowerShellu ( $PSHOME ). Další informace najdete v souboru Types.ps1xml.

Vlastnosti aliasů

Vlastnost alias definuje nový název existující vlastnosti.

V následujícím příkladu je vlastnost Count přidána do typu System.Array. Element AliasProperty definuje rozšířenou vlastnost jako vlastnost alias. Element Name určuje nový název. A element ReferencedMemberName určuje existující vlastnost, na kterou odkazuje alias. Element můžete také AliasProperty přidat do členů elementu MemberSets.

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

Vlastnosti kódu

Vlastnost kódu odkazuje na statickou vlastnost .NET Framework objektu.

V následujícím příkladu je vlastnost Mode přidána do typu System.IO.DirectoryInfo. Element CodeProperty definuje rozšířenou vlastnost jako vlastnost kódu. Element Name určuje název rozšířené vlastnosti. A element GetCodeReference definuje statickou metodu, na kterou odkazuje rozšířená vlastnost . Element můžete také CodeProperty přidat do členů elementu MemberSets.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <CodeProperty>
      <Name>Mode</Name>
      <GetCodeReference>
        <TypeName>Microsoft.PowerShell.Commands.FileSystemProvider</TypeName>
        <MethodName>Mode</MethodName>
      </GetCodeReference>
    </CodeProperty>
  </Members>
</Type>

Vlastnosti poznámek

Vlastnost note definuje vlastnost, která má statickou hodnotu.

V následujícím příkladu je vlastnost Status, jejíž hodnota je vždy Success, přidána do typu System.IO.DirectoryInfo. Element NoteProperty definuje rozšířenou vlastnost jako vlastnost note. Element Name určuje název rozšířené vlastnosti. Element Value určuje statickou hodnotu rozšířené vlastnosti. Element NoteProperty lze také přidat do členů elementu MemberSets.

<Type>
  <Name>System.IO.DirectoryInfo</Name>
  <Members>
    <NoteProperty>
      <Name>Status</Name>
      <Value>Success</Value>
    </NoteProperty>
  </Members>
</Type>

Vlastnosti skriptu

Vlastnost script definuje vlastnost, jejíž hodnota je výstupem skriptu.

V následujícím příkladu je vlastnost VersionInfo přidána do typu System.IO.FileInfo. Element ScriptProperty definuje rozšířenou vlastnost jako vlastnost skriptu. Element Name určuje název rozšířené vlastnosti. A element GetScriptBlock určuje skript, který generuje hodnotu vlastnosti. Element můžete také ScriptProperty přidat do členů elementu MemberSets.

<Type>
  <Name>System.IO.FileInfo</Name>
  <Members>
    <ScriptProperty>
      <Name>VersionInfo</Name>
      <GetScriptBlock>
        [System.Diagnostics.FileVersionInfo]::GetVersionInfo($this.FullName)
      </GetScriptBlock>
    </ScriptProperty>
  </Members>
</Type>

Sady vlastností

Sada vlastností definuje skupinu rozšířených vlastností, na kterou lze odkazovat pomocí názvu sady. Například parametr Format-TableProperty může určit konkrétní sadu vlastností, která se má zobrazit. Pokud je zadaná sada vlastností, zobrazí se jenom ty vlastnosti, které do sady patří.

Neexistuje žádné omezení počtu sad vlastností, které lze pro objekt definovat. Sady vlastností použité k definování výchozích vlastností zobrazení objektu však musí být zadány v sadě členů PSStandardMembers. V souboru typů obsahují výchozí názvy sady Types.ps1xml vlastností DefaultDisplayProperty, DefaultDisplayPropertySet a DefaultKeyPropertySet. Všechny další sady vlastností, které přidáte do sady členů PSStandardMembers, jsou ignorovány.

V následujícím příkladu je sada vlastností DefaultDisplayPropertySet přidána do členské sady PSStandardMembers typu System.Serviceprocess.Servicecontroller. Element PropertySet definuje skupinu vlastností. Element Name určuje název sady vlastností. A element ReferencedProperties určuje vlastnosti objektu set. Element můžete také PropertySet přidat do členů elementu Type.

<Type>
  <Name>System.ServiceProcess.ServiceController</Name>
  <Members>
    <MemberSet>
      <Name>PSStandardMembers</Name>
      <Members>
        <PropertySet>
           <Name>DefaultDisplayPropertySet</Name>
           <ReferencedProperties>
            <Name>Status</Name
            <Name>Name</Name>
            <Name>DisplayName</Name>
          </ReferencedProperties>
        </PropertySet>
      </Members>
    </MemberSet>
  </Members>
</Type>

Viz také

Informace o souboru Types.ps1xml

System.Management.Automation

Vytvoření rutiny Windows PowerShellu