Rozszerzanie właściwości dla obiektów

Podczas rozszerzania .NET Framework można dodawać do obiektów właściwości aliasów, właściwości kodu, właściwości notatki, właściwości skryptu i zestawy właściwości. Kod XML, który definiuje te właściwości, jest opisany w poniższych sekcjach.

Uwaga

Przykłady w poniższych sekcjach znajdują się w pliku typów domyślnych Types.ps1xml w katalogu instalacyjnym programu PowerShell ( $PSHOME ). Aby uzyskać więcej informacji, zobacz About Types.ps1xml.

Właściwości aliasu

Właściwość aliasu definiuje nową nazwę istniejącej właściwości.

W poniższym przykładzie właściwość Count jest dodawana do typu System.Array. AliasProperty element definiuje właściwość extended jako właściwość aliasu. Name element określa nową nazwę. A element ReferencedMemberName określa istniejącą właściwość, do których odwołuje się alias. Możesz również dodać AliasProperty element do elementów członkowskich elementu MemberSets.

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

Właściwości kodu

Właściwość kodu odwołuje się do statycznej właściwości .NET Framework obiektu.

W poniższym przykładzie właściwość Mode jest dodawana do typu System.IO.DirectoryInfo. Element CodeProperty definiuje właściwość extended jako właściwość kodu. Name element określa nazwę właściwości rozszerzonej. Element GetCodeReference definiuje metodę statyczną, do których odwołuje się właściwość extended. Możesz również dodać CodeProperty element do elementów członkowskich 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>

Zanotuj właściwości

Właściwość notatki definiuje właściwość, która ma wartość statyczną.

W poniższym przykładzie właściwość Status, której wartość to zawsze Success, jest dodawana do typu System.IO.DirectoryInfo. NoteProperty element definiuje właściwość extended jako właściwość notatki. Name element określa nazwę właściwości rozszerzonej. Wartość element określa wartość statyczną właściwości rozszerzonej. Element NoteProperty można również dodać do elementów członkowskich elementu MemberSets.

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

Właściwości skryptu

Właściwość script definiuje właściwość, której wartość jest wartością wyjściową skryptu.

W poniższym przykładzie właściwość VersionInfo jest dodawana do typu System.IO.FileInfo. Element ScriptProperty definiuje właściwość extended jako właściwość skryptu. Name element określa nazwę właściwości rozszerzonej. Element GetScriptBlock określa skrypt, który generuje wartość właściwości. Możesz również dodać ScriptProperty element do elementów członkowskich elementu MemberSets.

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

Zestawy właściwości

Zestaw właściwości definiuje grupę właściwości rozszerzonych, do których może odwoływać się nazwa zestawu. Na przykład parametr Format-Table Property może określać określony zestaw właściwości do wyświetlania. Po podano zestaw właściwości, wyświetlane są tylko te właściwości, które należą do zestawu.

Nie ma żadnych ograniczeń dotyczących liczby zestawów właściwości, które można zdefiniować dla obiektu. Jednak zestawy właściwości używane do definiowania domyślnych właściwości wyświetlania obiektu muszą być określone w zestawie członkowskim PSStandardMembers. W pliku typów domyślne nazwy zestawu właściwości obejmują Types.ps1xml DefaultDisplayProperty, DefaultDisplayPropertySet i DefaultKeyPropertySet. Wszelkie dodatkowe zestawy właściwości, które dodajesz do zestawu członków PSStandardMembers, są ignorowane.

W poniższym przykładzie zestaw właściwości DefaultDisplayPropertySet jest dodawany do zestawu członków PSStandardMembers typu System.Serviceprocess.Servicecontroller. PropertySet element definiuje grupę właściwości. Name element określa nazwę zestawu właściwości. Element ReferencedProperties określa właściwości zestawu. Możesz również dodać PropertySet element do elementów członkowskich 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>

Zobacz też

Informacje o pliku Types.ps1xml

System.Management.Automation

Pisanie polecenia cmdlet programu Windows PowerShell