共用方式為


擴充對象的屬性

當您擴充 .NET Framework 物件時,可以將別名屬性、程式代碼屬性、附註屬性、腳本屬性和屬性集新增至物件。 下列各節說明定義這些屬性的 XML。

備註

下列各節中的範例來自 PowerShell 安裝目錄中的預設 Types.ps1xml 類型檔案 ($PSHOME)。 如需詳細資訊,請參閱 關於 Types.ps1xml

別名屬性

別名屬性會定義現有屬性的新名稱。

在下列範例中,Count 屬性會新增至 System.Array 類型。 AliasProperty 元素會將擴充屬性定義為別名屬性。 Name 專案會指定新的名稱。 而且,ReferencedMemberName 元素會指定別名所參考的現有屬性。 您也可以將 AliasProperty 專案新增至 MemberSets 項目的成員。

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

程式代碼屬性

程式代碼屬性會參考 .NET Framework 對象的靜態屬性。

在下列範例中,Mode 屬性會新增至 System.IO.DirectoryInfo 類型。 CodeProperty 專案會將擴充屬性定義為程式代碼屬性。 Name 專案會指定擴充屬性的名稱。 而且,GetCodeReference 元素會定義擴充屬性所參考的靜態方法。 您也可以將 CodeProperty 專案新增至 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>

注意屬性

note 屬性會定義具有靜態值的屬性。

在下列範例中,Status 屬性,其值一律 Success,會新增至 System.IO.DirectoryInfo 類型。 NoteProperty 元素會將擴充屬性定義為 note 屬性。 Name 專案會指定擴充屬性的名稱。 Value 專案會指定擴充屬性的靜態值。 NoteProperty 專案也可以新增至 MemberSets 項目的成員。

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

文本屬性

文本屬性會定義其值為腳本輸出的屬性。

在下列範例中,VersionInfo 屬性會新增至 System.IO.FileInfo 類型。 ScriptProperty 元素會將擴充屬性定義為腳本屬性。 Name 專案會指定擴充屬性的名稱。 而且,GetScriptBlock 元素會指定產生屬性值的腳本。 您也可以將 ScriptProperty 專案新增至 MemberSets 項目的成員。

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

屬性集

屬性集定義可由集合名稱參考的擴充屬性群組。 例如,Format-TableProperty 參數可以指定要顯示的特定屬性集。 指定屬性集時,只會顯示屬於集合的屬性。

對於可以針對物件定義的屬性集數目沒有任何限制。 不過,用來定義物件默認顯示屬性的屬性集必須在 PSStandardMembers 成員集內指定。 在 Types.ps1xml 類型檔案中,默認屬性集名稱包括 DefaultDisplayPropertyDefaultDisplayPropertySet,以及 DefaultKeyPropertySet。 您新增至 PSStandardMembers 成員集的任何其他屬性集,則會忽略。

在下列範例中,DefaultDisplayPropertySet 屬性集會新增至 System.ServiceProcess.ServiceController 類型的 PSStandardMemb ers 成員集。 PropertySet 元素會定義屬性群組。 Name 專案會指定屬性集的名稱。 而且,ReferencedProperties 元素會指定集合的屬性。 您也可以將 PropertySet 專案新增至 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>

另請參閱

關於 Types.ps1xml

System.Management.Automation

撰寫 Windows PowerShell Cmdlet