13

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

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

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

4

2 回答 2

20

曾经在 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 方法的属性。

等等。

于 2013-11-14T11:12:07.490 回答
7

请参阅 PSMemberTypes 枚举页面

于 2013-11-14T11:11:14.390 回答