Sdílet prostřednictvím


Rozšíření vlastností pro objekty

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

Poznámka:

Příklady v následujících částech pocházejí z výchozího souboru Types.ps1xml typů v instalačním adresáři PowerShellu ($PSHOME). Další informace najdete v tématu o typech.ps1xml.

Vlastnosti aliasu

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

V následujícím příkladu je vlastnost Count přidána do System.Array typ. Element AliasProperty definuje rozšířenou vlastnost jako vlastnost aliasu. Element Name určuje nový název. A ReferencedMemberName element určuje existující vlastnost, na kterou odkazuje alias. Prvek AliasProperty můžete také 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 objektu rozhraní .NET Framework.

V následujícím příkladu je vlastnost Mode přidána do typu System.IO.DirectoryInfo. CodeProperty element definuje rozšířenou vlastnost jako vlastnost kódu. Element Name určuje název rozšířené vlastnosti. A GetCodeReference element definuje statickou metodu odkazovanou rozšířenou vlastností. Prvek CodeProperty můžete také 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 poznámky definuje vlastnost, která má statickou hodnotu.

V následujícím příkladu je vlastnost Status, jejíž hodnota je vždy Úspěch, přidána do System.IO.DirectoryInfo typ. NoteProperty element definuje rozšířenou vlastnost jako vlastnost poznámky. Element Name určuje název rozšířené vlastnosti. Prvek Value určuje statickou hodnotu rozšířené vlastnosti. Prvek 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 skriptu 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. ScriptProperty element definuje rozšířenou vlastnost jako vlastnost skriptu. Element Name určuje název rozšířené vlastnosti. A element GetScriptBlock určuje skript, který vygeneruje hodnotu vlastnosti. Prvek ScriptProperty můžete také 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 názvem sady. Například parametr Format-Tablevlastnost může určit konkrétní sadu vlastností, která se má zobrazit. Pokud je zadána sada vlastností, zobrazí se pouze ty vlastnosti, které patří do sady.

Neexistuje žádné omezení počtu sad vlastností, které lze definovat pro objekt. Sady vlastností použité k definování výchozích zobrazovaných vlastností objektu musí být zadány v rámci PSStandardMembers členské sady. V Types.ps1xml typ souboru, výchozí názvy sad vlastností zahrnují DefaultDisplayProperty, DefaultDisplayPropertySeta DefaultKeyPropertySet. Všechny další sady vlastností, které přidáte do PSStandardMembers členské sady, budou ignorovány.

V následujícím příkladu je DefaultDisplayPropertySet nastavena do PSStandardMembers členské sady System.ServiceProcess.ServiceController typ. Element PropertySet definuje skupinu vlastností. Element Name určuje název sady vlastností. A ReferencedProperties element určuje vlastnosti sady. Prvek PropertySet můžete také 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é

o Types.ps1xml

System.Management.Automation

psaní rutiny Prostředí Windows PowerShell