PowerShell中的成员类型(ScriptProperty,Property和NoteProperty)

时间:2013-11-14 11:00:34

标签: powershell powershell-v3.0

PowerShell中的成员类型有哪些,如ScriptProperty,Property,Method,NoteProperty,Alias和EventProperty?

例如,CPU是ScriptProperty。我们如何将其归类为ScriptProperty?

我想简要了解所有这些信息。

2 个答案:

答案 0 :(得分:15)

以前在MSDN上对 PowerShell扩展类型系统进行了很好的介绍(遗憾的是,自PSH v1以来的更改已经丢失了。)

本质上,PowerShell允许通过PSObject类型将基础.NET对象与其他成员包装在一起。这可以通过多种方式完成:

  • 使用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方法的属性。

等等。

答案 1 :(得分:6)