当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 扩展输出对象

作者:精品下载站 日期:2024-12-14 02:52:14 浏览:12 分类:玩电脑

扩展输出对象


您可以使用类型文件 (.ps1xml) 扩展 cmdlet、函数和脚本返回的 .NET Framework 对象。类型文件是基于 XML 的文件,可让您向现有对象添加属性和方法。例如,Windows PowerShell 提供 Types.ps1xml 文件,该文件将元素添加到多个现有 .NET Framework 对象。 Types.ps1xml 文件位于 Windows PowerShell 安装目录 ($pshome)。您可以创建自己的类型文件来进一步扩展这些对象或扩展其他对象。当您使用类型文件扩展对象时,该对象的任何实例都将使用新元素进行扩展。

扩展 System.Array 对象

以下示例显示 Windows PowerShell 如何扩展 Types.ps1xml 文件中的 System.Array 对象。默认情况下,System.Array 对象有一个 Length 属性,用于列出数组中的对象数量。但是,由于名称“length”没有清楚地描述该属性,Windows PowerShell 添加了 Count 别名属性,该属性显示与 Length 属性相同的值。以下 XML 将 Count 属性添加到 System.Array 类型。

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

要查看这个新的别名属性,请在任何数组上使用 Get-Member 命令,如以下示例所示。

Get-Member -InputObject (1,2,3,4)

该命令返回以下结果。

Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object& Address(Int32 )
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(Array array, Int32 index):
Equals         Method        System.Boolean Equals(Object obj)
Get            Method        System.Object Get(Int32 )
...
Length         Property      System.Int32 Length {get;}

您可以使用 Count 属性或 Length 属性来确定数组中有多少个对象。例如:

PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4

自定义类型文件

要创建自定义类型文件,请首先复制现有类型文件。新文件可以具有任何名称,但必须具有 .ps1xml 文件扩展名。复制文件时,可以将新文件放置在 Windows PowerShell 可访问的任何目录中,但将文件放置在 Windows PowerShell 安装目录 ($pshome) 或目录中会很有用。安装目录的子目录。

要将您自己的扩展类型添加到文件中,请为每个要扩展的对象添加一个 types 元素。以下主题提供了示例。

  • 有关添加属性和属性集的详细信息,请参阅扩展属性

  • 有关添加方法的更多信息,请参阅扩展方法。

  • 有关添加成员集的更多信息,请参阅扩展成员集。

定义自己的扩展类型后,请使用以下方法之一使扩展对象可用:

  • 要使扩展类型文件可供当前会话使用,请使用 Update-TypeData cmdlet 添加新文件。如果您希望您的类型优先于其他类型文件(包括 Types.ps1xml 文件)中定义的类型,请使用 Update-TypeData cmdlet 的 PrependData 参数。
  • 要使扩展类型文件可供所有未来会话使用,请将类型文件添加到模块、导出当前会话或将 Update-TypeData 命令添加到 Windows PowerShell 配置文件。

签名类型文件

类型文件应该进行数字签名以防止篡改,因为 XML 可以包含脚本块。有关添加数字签名的更多信息,请参阅 about_Signing

参见

定义对象的默认属性

定义对象的默认方法

定义对象的默认成员集

编写 Windows PowerShell Cmdlet

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯