C#相当于PowerShell$输入变量

C#相当于PowerShell$输入变量,c#,powershell,cmdlet,C#,Powershell,Cmdlet,我通过扩展PSCmdlet类在C#中创建PowerShell cmdlet。 我需要在C代码中使用整个流水线输入。我尝试将属性设置为以下的参数: [Parameter(Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)] public Object Connection; 当我试图通过在项目列表中管道化来执行cmdlet时,我每次会在C#代码中处理一个项目 我需要在我的C代码中处

我通过扩展PSCmdlet类在C#中创建PowerShell cmdlet。 我需要在C代码中使用整个流水线输入。我尝试将属性设置为以下的参数:

[Parameter(Mandatory = true, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
public Object Connection;
当我试图通过在项目列表中管道化来执行cmdlet时,我每次会在C#代码中处理一个项目


我需要在我的C代码中处理整个管道输入。我发现这可以在PowerShell中使用$input变量获得。是否存在与此$input PowerShell变量相当的C#变量?

我不知道。但是,您可以使用ProcessRecord方法将管道对象(从绑定到管道输入的属性)累积到集合中,然后在EndProcessing方法中处理累积的对象。

我不确定,但是对于每个管道化项目,ProcessRecord方法是否执行一次?如果是,是否有办法找到ProcessRecord方法的当前传递号?是,对每个管道对象执行ProcessRecord。请记住,单个管道对象可以是数组,具体取决于如何定义管道绑定的属性。我不知道有什么内置方法可以确定密码,但您可以始终向cmdlet添加一个int字段,并在每次调用ProcessRecord时递增该字段。
$a=@("value1","value2")
$a | cmdlet-name