Потребляйте данные из трубопровода

Как использовать данные из конвейера при написании командлетов на C #?

Например, у меня есть два класса:

Это дает данные:

[Cmdlet(VerbsCommon.Get, "Numbers")]
public class GetNumbers : Cmdlet
{
    protected override void ProcessRecord()
    {
        WriteObject(new[] {1, 2, 3, 4, 5}, true);
    }
}

И этот должен потреблять эти данные:

[Cmdlet(VerbsCommon.Find, "Numbers")]
public class FindNumbers: Cmdlet
{
    protected override void ProcessRecord()
    {
        foreach (var variable in %Input%)//Where do I get input? Any ReadRecord or something else?
        {
            if (variable % 2 == 0)
            {
                WriteObject(variable);
            }
        }
    }
}

В этом случае:

Get-Numbers | Find-Numbers
2
nl ja de

1 ответы

Вы должны использовать ValueFromPipeline ParameterAttribute класс:

[Cmdlet(VerbsCommon.Find, "Numbers")]
public class FindNumbers: Cmdlet
{
    [Parameter(ValueFromPipeline = true)]//The data appear in this variable
    public int[] Input { get; set; }

    protected override void ProcessRecord()
    {
        foreach (var variable in Input)
        {
            if (variable % 2 == 0)
            {
                WriteObject(variable);
            }
        }
    }
}
5
добавлено
Это также может помочь: stackoverflow.com/questions/885349/…
добавлено автор Zasz, источник
@Zasz: Я не вижу, как ваша ссылка связана с написанием этих командлетов на C #?
добавлено автор mousio, источник
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot

PowerShellRus - о Powershell (и не только) на русском
PowerShellRus - о Powershell (и не только) на русском
418 участник(ов)

О Powershell на русском

PowerShell Pro
PowerShell Pro
75 участник(ов)

Чат, посвящённый языку PowerShell Правила чата: нет оффтопу, спаму, оскорблениям. Будьте вежливы к коллегам. Приятного общения! Книги можно найти по тегу #books