我通过扩展PSCmdlet类在C#中创建PowerShell cmdlet。 我需要为管道输入和普通参数输入使用相同的参数。例如
[Parameter(Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
public Object Connection;
此处Connection参数可以同时采用管道输入
$connectionValue | Cmdlet-Name
以及使用
的常规参数Cmdlet-Name -Connection $connectionValue
在C#中是否有一种方法可以找出参数值是通过管道连接到cmdlet还是使用-Connection提供的? 在PowerShell中,可以通过检查$ input是否为空来完成。是否有任何参数属性可以指示输入类型?
答案 0 :(得分:1)
您可以通过查看调用开始处理时是否设置或仅在进程记录期间设置它来进行检查。在调用开始处理之前设置非管道属性。