2
我在C#中通过扩展PSCmdlet类来创建PowerShell cmdlet。 我需要获取整个Pipelined输入以在C#代码中使用。我试着具有设置为性能参数:
[Parameter(Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
public Object Connection;
当我试图通过管道中的项目清单执行cmdlet时,我同时在C#代码来处理得到一个项目。
[email protected]("value1","value2")
$a | cmdlet-name
我需要获取整个管道输入来处理我的C#代码。我发现这可以在PowerShell中使用$ input变量获得。有没有这个$输入PowerShell变量的C#等价物?
我不确定,但是对于每个流水线项目,ProcessRecord方法会执行一次吗?如果是的话,有没有办法找出ProcessRecord方法的当前传递号? – Vijay
是为每个管道对象执行ProcessRecord。请记住,单个管道对象可能是一个数组,取决于您如何定义管道绑定的属性。我没有意识到确定传递数的内置方式,但您可以随时向您的cmdlet添加一个int字段,并在每次调用ProcessRecord时增加它。 –