Utöka egenskaper för objekt

När du utökar .NET Framework-objekt kan du lägga till aliasegenskaper, kodegenskaper, anteckningsegenskaper, skriptegenskaper och egenskapsuppsättningar i objekten. DEN XML som definierar dessa egenskaper beskrivs i följande avsnitt.

Anmärkning

Exemplen i följande avsnitt är från standardfilen Types.ps1xml typer i PowerShell-installationskatalogen ($PSHOME). Mer information finns i About Types.ps1xml.

Aliasegenskaper

En aliasegenskap definierar ett nytt namn för en befintlig egenskap.

I följande exempel läggs egenskapen Count till i System.Array typ. Elementet AliasProperty definierar den utökade egenskapen som en aliasegenskap. Elementet Name anger det nya namnet. Och elementet ReferencedMemberName anger den befintliga egenskapen som refereras av aliaset. Du kan också lägga till elementet AliasProperty till medlemmarna i elementet MemberSets.

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

Kodegenskaper

En kodegenskap refererar till en statisk egenskap för ett .NET Framework-objekt.

I följande exempel läggs egenskapen Mode till i System.IO.DirectoryInfo typ. Elementet CodeProperty definierar den utökade egenskapen som en kodegenskap. Elementet Name anger namnet på den utökade egenskapen. Och elementet GetCodeReference definierar den statiska metod som refereras av den utökade egenskapen. Du kan också lägga till elementet CodeProperty till medlemmarna i elementet 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>

Anteckningsegenskaper

En anteckningsegenskap definierar en egenskap som har ett statiskt värde.

I följande exempel läggs egenskapen Status, vars värde alltid är Lyckades, till i System.IO.DirectoryInfo typ. Elementet NoteProperty definierar den utökade egenskapen som en anteckningsegenskap. Elementet Name anger namnet på den utökade egenskapen. Elementet Value anger det statiska värdet för den utökade egenskapen. Elementet NoteProperty kan också läggas till medlemmar i elementet MemberSets.

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

Skriptegenskaper

En skriptegenskap definierar en egenskap vars värde är utdata från ett skript.

I följande exempel läggs egenskapen VersionInfo till i System.IO.FileInfo typ. Elementet ScriptProperty definierar den utökade egenskapen som en skriptegenskap. Elementet Name anger namnet på den utökade egenskapen. Och elementet GetScriptBlock anger skriptet som genererar egenskapsvärdet. Du kan också lägga till elementet ScriptProperty till medlemmarna i elementet MemberSets.

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

Egenskapsuppsättningar

En egenskapsuppsättning definierar en grupp med utökade egenskaper som kan refereras till av namnet på uppsättningen. Till exempel kan parametern Format-TableProperty ange en specifik egenskapsuppsättning som ska visas. När en egenskapsuppsättning har angetts visas endast de egenskaper som tillhör uppsättningen.

Det finns ingen begränsning för antalet egenskapsuppsättningar som kan definieras för ett objekt. De egenskapsuppsättningar som används för att definiera standardvisningsegenskaperna för ett objekt måste dock anges i PSStandardMembers medlemsuppsättning. I filen Types.ps1xml typer innehåller standardnamnen för egenskapsuppsättningar DefaultDisplayProperty, DefaultDisplayPropertySetoch DefaultKeyPropertySet. Eventuella ytterligare egenskapsuppsättningar som du lägger till i PSStandardMembers medlemsuppsättning ignoreras.

I följande exempel läggs egenskapsuppsättningen DefaultDisplayPropertySet till i PSStandardMembers medlemsuppsättning för System.ServiceProcess.ServiceController typ. Elementet PropertySet definierar gruppen med egenskaper. Elementet Name anger namnet på egenskapsuppsättningen. Och elementet ReferencedProperties anger egenskaperna för uppsättningen. Du kan också lägga till elementet PropertySet till medlemmarna i elementet 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>

Se även

Om Types.ps1xml

System.Management.Automation

Skriva en Windows PowerShell-cmdlet