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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro