Freigeben über


Erweitern Objekteigenschaften

Wenn Sie .NET Framework-Objekte erweitern, können Sie Aliaseigenschaften, Codeeigenschaften, Notizeigenschaften, Skripteigenschaften und Eigenschaftensätze zu den Objekten hinzufügen. Der XML-Code, der diese Eigenschaften definiert, wird in den folgenden Abschnitten beschrieben.

Hinweis

Die Beispiele in den folgenden Abschnitten stammen aus der Standarddatei Types.ps1xml Typen im PowerShell-Installationsverzeichnis ($PSHOME). Weitere Informationen finden Sie unter About Types.ps1xml.

Aliaseigenschaften

Eine Aliaseigenschaft definiert einen neuen Namen für eine vorhandene Eigenschaft.

Im folgenden Beispiel wird die eigenschaft Count zum System.Array- typ hinzugefügt. Das AliasProperty--Element definiert die erweiterte Eigenschaft als Aliaseigenschaft. Das Name--Element gibt den neuen Namen an. Außerdem gibt das ReferencedMemberName-Element die vorhandene Eigenschaft an, auf die durch den Alias verwiesen wird. Sie können das AliasProperty-Element auch den Membern des MemberSets-Elements hinzufügen.

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

Codeeigenschaften

Eine Codeeigenschaft verweist auf eine statische Eigenschaft eines .NET Framework-Objekts.

Im folgenden Beispiel wird die eigenschaft Mode zum System.IO.DirectoryInfo Typ hinzugefügt. Das CodeProperty--Element definiert die erweiterte Eigenschaft als Codeeigenschaft. Das Name--Element gibt den Namen der erweiterten Eigenschaft an. Außerdem definiert das GetCodeReference--Element die statische Methode, auf die von der erweiterten Eigenschaft verwiesen wird. Sie können das CodeProperty-Element auch den Membern des MemberSets-Elements hinzufügen.

<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>

Notizeigenschaften

Eine Notizeigenschaft definiert eine Eigenschaft, die einen statischen Wert aufweist.

Im folgenden Beispiel wird die eigenschaft Status, deren Wert immer Successist, dem System.IO.DirectoryInfo Typ hinzugefügt. Das NoteProperty--Element definiert die erweiterte Eigenschaft als Notizeigenschaft. Das Name--Element gibt den Namen der erweiterten Eigenschaft an. Das Value-Element gibt den statischen Wert der erweiterten Eigenschaft an. Das NoteProperty-Element kann auch den Membern des MemberSets-Elements hinzugefügt werden.

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

Skripteigenschaften

Eine Skripteigenschaft definiert eine Eigenschaft, deren Wert die Ausgabe eines Skripts ist.

Im folgenden Beispiel wird die VersionInfo-Eigenschaft dem System.IO.FileInfo Typ hinzugefügt. Das ScriptProperty--Element definiert die erweiterte Eigenschaft als Skripteigenschaft. Das Name--Element gibt den Namen der erweiterten Eigenschaft an. Außerdem gibt das GetScriptBlock--Element das Skript an, das den Eigenschaftswert generiert. Sie können das ScriptProperty-Element auch den Membern des MemberSets-Elements hinzufügen.

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

Eigenschaftensätze

Ein Eigenschaftensatz definiert eine Gruppe erweiterter Eigenschaften, auf die mit dem Namen des Satzes verwiesen werden kann. Beispielsweise kann der parameter Format-TableProperty einen bestimmten Eigenschaftensatz angeben, der angezeigt werden soll. Wenn ein Eigenschaftensatz angegeben wird, werden nur die Eigenschaften angezeigt, die zum Satz gehören.

Es gibt keine Einschränkung für die Anzahl der Eigenschaftensätze, die für ein Objekt definiert werden können. Die Eigenschaftensätze, die zum Definieren der Standardanzeigeeigenschaften eines Objekts verwendet werden, müssen jedoch innerhalb der PSStandardMembers Membersatz angegeben werden. In der Datei Types.ps1xml Typen enthalten die Standardeigenschaftensatznamen DefaultDisplayProperty-, DefaultDisplayPropertySet-und DefaultKeyPropertySet-. Alle zusätzlichen Eigenschaftensätze, die Sie dem PSStandardMembers Membersatz hinzufügen, werden ignoriert.

Im folgenden Beispiel wird der DefaultDisplayPropertySet Eigenschaftensatz dem PSStandardMembers Membersatz des System.ServiceProcess.ServiceController Typs hinzugefügt. Das PropertySet--Element definiert die Gruppe von Eigenschaften. Das Name Element gibt den Namen des Eigenschaftensatzes an. Außerdem gibt das ReferencedProperties Element die Eigenschaften des Satzes an. Sie können das PropertySet-Element auch den Membern des Type-Elements hinzufügen.

<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>

Siehe auch

Über Types.ps1xml

System.Management.Automation

Schreiben eines Windows PowerShell-Cmdlets