Metody zpracování vstupu rutiny

Rutiny musí přepsat jednu nebo více metod zpracování vstupu popsaných v tomto tématu k provedení jejich práce. Tyto metody umožňují, aby rutina prováděla operace předběžného zpracování, zpracování vstupu a následného zpracování. Tyto metody také umožňují zastavit zpracování rutin. Podrobnější příklad použití těchto metod najdete v kurzu SelectStr.

Operace před zpracováním

Rutiny by měly přepsat metodu System. Management. Automation. rutina. BeginProcessing , aby bylo možné přidat všechny operace předběžného zpracování, které jsou platné pro všechny záznamy, které bude rutina zpracovávat později. Když PowerShell zpracuje kanál příkazu, volá PowerShell tuto metodu jednou pro každou instanci rutiny v kanálu. Další informace o tom, jak PowerShell vyvolá kanál příkazu, najdete v tématu životní cyklus zpracování rutin.

Následující kód ukazuje implementaci metody BeginProcessing.

protected override void BeginProcessing()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the BeginProcessing template.");
}

Vstupní operace zpracování

Rutiny mohou přepsat metodu System. Management. Automation. rutina. ProcessRecord ke zpracování vstupu, který je odeslán do rutiny. Když PowerShell zpracuje kanál příkazu, volá PowerShell tuto metodu pro každý vstupní záznam, který je zpracován pomocí rutiny. Další informace o tom, jak PowerShell vyvolá kanál příkazu, najdete v tématu životní cyklus zpracování rutin.

Následující kód ukazuje implementaci metody ProcessRecord.

protected override void ProcessRecord()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the ProcessRecord template.");
}

Operace následného zpracování

Rutiny by měly přepsat metodu System. Management. Automation. rutina EndProcessing , aby bylo možné přidat všechny operace následného zpracování, které jsou platné pro všechny záznamy, které byly zpracovány rutinou. Například vaše rutina může po dokončení zpracování vyčistit proměnné objektu.

Když PowerShell zpracuje kanál příkazu, volá PowerShell tuto metodu jednou pro každou instanci rutiny v kanálu. Je však důležité si uvědomit, že modul runtime prostředí PowerShell nebude volat metodu EndProcessing, pokud je rutina zrušena pomocí jejího vstupního zpracování nebo pokud dojde k ukončující chybě v jakékoli části rutiny. Z tohoto důvodu by rutina, která vyžaduje vyčištění objektu, měla implementovat úplný vzor System. IDisposable , včetně finalizační metody, aby modul runtime mohl na konci zpracování volat metody EndProcessing a System. IDisposable. Dispose . Další informace o tom, jak PowerShell vyvolá kanál příkazu, najdete v tématu životní cyklus zpracování rutin.

Následující kód ukazuje implementaci metody EndProcessing.

protected override void EndProcessing()
{
  // Replace the WriteObject method with the logic required by your cmdlet.
  WriteObject("This is a test of the EndProcessing template.");
}

Viz také

System. Management. Automation. rutina. BeginProcessing

System. Management. Automation. rutina. ProcessRecord

System. Management. Automation. rutina. EndProcessing

Kurz SelectStr

System. IDisposable

Windows PowerShell Sada SDK pro prostředí