如何自定义类型作为PowerShell的OutputType参数值?
在PowerShell中指定自定义类型作为OutputType的值
一、使用自定义类的正确实现方式
若要通过自定义类(如Person)来指定输出类型,需确保类定义在函数之前,PowerShell才能识别该类型。
完整代码示例:
# 自定义类必须定义在函数上方,让PowerShell提前加载类型 class Person { [string]$FirstName [string]$LastName } function Get-Person { [CmdletBinding()] [OutputType([Person])] # 直接指定自定义类作为输出类型 param () # 返回自定义类的实例 return [Person]@{ FirstName = 'Bill' LastName = 'Smith' } }
二、使用PSCustomObject时的OutputType指定
如果不想定义强类型类,直接使用PSCustomObject,可通过两种方式指定输出类型:
方式1:直接指定PSCustomObject类型
function Get-Person { [CmdletBinding()] [OutputType([PSCustomObject])] param () [PSCustomObject]@{ FirstName = 'Bill' LastName = 'Smith' } }
方式2:给PSCustomObject添加自定义类型名后指定
通过PSTypeName给动态对象标记自定义类型,再在OutputType中引用该类型名:
function Get-Person { [CmdletBinding()] [OutputType('Custom.Person')] # 引用自定义类型名 param () [PSCustomObject]@{ FirstName = 'Bill' LastName = 'Smith' PSTypeName = 'Custom.Person' # 标记自定义类型名 } }
内容的提问来源于stack exchange,提问作者lit
相关产品推荐
相关产品推荐

