Invoerverwerkingsmethoden voor cmdlets

Cmdlets moeten een of meer van de invoerverwerkingsmethoden die in dit onderwerp worden beschreven, overschrijven om hun werk uit te voeren. Met deze methoden kan de cmdlet bewerkingen van voorverwerking, invoerverwerking en naverwerking uitvoeren. Met deze methoden kunt u ook de verwerking van cmdlet's stoppen. Zie SelectStr Tutorial voor een gedetailleerder voorbeeld van het gebruik van deze methoden.

Voorverwerkingsbewerkingen

Cmdlets moeten de methode System.Management.Automation.Cmdlet.BeginProcessing overschrijven om voorverwerkingsbewerkingen toe te voegen die geldig zijn voor alle records die later door de cmdlet worden verwerkt. Wanneer PowerShell een opdrachtpijplijn verwerkt, roept PowerShell deze methode eenmaal aan voor elk exemplaar van de cmdlet in de pijplijn. Zie Cmdlet Processing Lifecycle (Levenscyclus van cmdlet-verwerking) voor meer informatie over hoe PowerShell de opdrachtpijplijn aanroept.

De volgende code toont een implementatie van de methode 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.");
}

Invoerverwerkingsbewerkingen

Cmdlets kunnen de methode System.Management.Automation.Cmdlet.ProcessRecord overschrijven om de invoer te verwerken die naar de cmdlet wordt verzonden. Wanneer PowerShell een opdrachtpijplijn verwerkt, roept PowerShell deze methode aan voor elke invoerrecord die wordt verwerkt door de cmdlet . Zie Cmdlet Processing Lifecycle (Levenscyclus van cmdlet-verwerking) voor meer informatie over hoe PowerShell de opdrachtpijplijn aanroept.

De volgende code toont een implementatie van de methode 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.");
}

Naverwerkingsbewerkingen

Cmdlets moeten de methode System.Management.Automation.Cmdlet.EndProcessing overschrijven om alle naverwerkingsbewerkingen toe te voegen die geldig zijn voor alle records die door de cmdlet zijn verwerkt. Uw cmdlet moet bijvoorbeeld objectvariabelen ops schonen nadat de verwerking is voltooid.

Wanneer PowerShell een opdrachtpijplijn verwerkt, roept PowerShell deze methode eenmaal aan voor elk exemplaar van de cmdlet in de pijplijn. Het is echter belangrijk te onthouden dat de PowerShell-runtime de methode EndProcessing niet aanroept als de cmdlet halverwege wordt geannuleerd tijdens de invoerverwerking of als er een beëindigingsfout optreedt in een deel van de cmdlet. Daarom moet een cmdlet die objectopschoning vereist het volledige System.IDisposable-patroon implementeren, inclusief een finalizer, zodat de runtime zowel de EndProcessing- als system.IDisposable.Dispose-methoden aan het einde van de verwerking kan aanroepen. Zie Cmdlet Processing Lifecycle (Levenscyclus van cmdlet-verwerking) voor meer informatie over hoe PowerShell de opdrachtpijplijn aanroept.

De volgende code toont een implementatie van de EndProcessing-methode.

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

Zie ook

System.Management.Automation.Cmdlet.BeginProcessing

System.Management.Automation.Cmdlet.ProcessRecord

System.Management.Automation.Cmdlet.EndProcessing

SelectStr-zelfstudie

System.IDisposable

Windows PowerShell Shell-SDK