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 till objekten. DEN XML som definierar dessa egenskaper beskrivs i följande avsnitt.

Anteckning

Exemplen i följande avsnitt kommer från Types.ps1xml standardtypfilen i PowerShell-installationskatalogen ( $PSHOME ). Mer information finns i Om Types.ps1xml.

Aliasegenskaper

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

I följande exempel läggs egenskapen Count till i typen System.Array. Elementet AliasProperty definierar den utökade egenskapen som en aliasegenskap. Elementet Name anger det nya namnet. Och elementet ReferencedMemberName anger den befintliga egenskapen som aliaset refererar till. Du kan också lägga till AliasProperty elementet 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 .NET Framework objekt.

I följande exempel läggs egenskapen Mode till i typen System.IO.DirectoryInfo. Elementet CodeProperty definierar den utökade egenskapen som en kodegenskap. Elementet Name anger namnet på den utökade egenskapen. Och getCodeReference-elementet definierar den statiska metod som den utökade egenskapen refererar till. Du kan också lägga till CodeProperty elementet 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 typen System.IO.DirectoryInfo. NoteProperty-elementet 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 i medlemmarna 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 typen System.IO.FileInfo. Elementet ScriptProperty definierar den utökade egenskapen som en skriptegenskap. Elementet Name anger namnet på den utökade egenskapen. Och getScriptBlock-elementet anger det skript som genererar egenskapsvärdet. Du kan också lägga till ScriptProperty elementet 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 utökade egenskaper som kan refereras till av namnet på uppsättningen. Parametern Format-Table Property kan till exempel ange en specifik egenskapsuppsättning som ska visas. När en egenskapsuppsättning anges 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. Egenskapsuppsättningarna som används för att definiera standardegenskaperna för ett objekt måste dock anges i medlemsuppsättningen PSStandardMembers. I filtyperna innehåller standardnamnen för egenskapsuppsättningen Types.ps1xml DefaultDisplayProperty, DefaultDisplayPropertySet och DefaultKeyPropertySet. Eventuella ytterligare egenskapsuppsättningar som du lägger till i medlemsuppsättningen PSStandardMembers ignoreras.

I följande exempel läggs egenskapsuppsättningen DefaultDisplayPropertySet till i medlemsuppsättningen PSStandardMembers för typen System.Serviceprocess.Servicecontroller. 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 PropertySet till elementet 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