2013-11-14 120 views

回答

9

曾經有MSDN上詳細介紹了該的PowerShell擴展類型系統(不幸的,因爲PSH V1的變化丟失)。

本質的PowerShell允許底層.NET對象到經由PSObject類型的附加件包裹。這可以通過多種方式來完成:

  • 使用Add-Member(給予最大程度的控制)
  • 傳遞一個哈希而不是名稱來Select-Object的屬性參數
  • 使用New-Object創建指定其他屬性一個PSObject以及使
  • 在.NET代碼(C#,VB,...)使用底層PSObject屬性和PSMemberInfo亞型。

不同類型的 「擴展」 的構件是由那些PSMemberInfo子類型代表,包括:

  • NoteProperty:.NET對象或值。
  • AliasProperty:另一個屬性的別名(例如,一個集合可以同時具有Count和Length屬性,其中一個是另一個的另一個名稱)。
  • ScriptProperty:使用PowerShell編寫的get和set方法的屬性。
  • CodeProperty:具有用C#,VB,...編寫的get和set方法的屬性。

等等。