Megerősítés kérése
Ez a példa bemutatja, hogyan hívhatja meg a System.Management.Automation.Cmdlet.ShouldProcess és a System.Management.Automation.Cmdlet.ShouldContinue metódusokat, hogy megerősítést kérjenek a felhasználótól a művelet előtt.
Fontos
További információ arról, hogy a Windows PowerShell hogyan kezeli ezeket a kéréseket: Megerősítés kérése.
Megerősítés kérése
Győződjön meg arról, hogy a
SupportsShouldProcess
Parancsmag attribútum paramétere a következőre van beállítva:true
. (A függvények számára ez a CmdletBinding attribútum paramétere.)[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
Megjegyzés
Az önmagában való használat nem garantálja, hogy a rendszer megerősítést
SupportsShouldProcess
kér a felhasználótól. A kérést a értéke és$ConfirmPreference
a művelet hatása határozza meg. AConfirmImpact
művelet hatásának súlyosságát a használatával állíthatja be.Adjon hozzá egy paramétert a
Force
parancsmaghoz, hogy a felhasználó felülbírálni tudja a megerősítési kérést.[Parameter()] public SwitchParameter Force { get { return force; } set { force = value; } } private bool force;
Adjon hozzá egy utasítást, amely a
if
System.Management.Automation.Cmdlet.ShouldProcess metódus visszatérési értékét használja annak megállapításához, hogy a System.Management.Automation.Cmdlet.ShouldContinue metódus van-e meghívva.Adjon hozzá egy második utasítást, amely a
if
System.Management.Automation.Cmdlet.ShouldContinue metódus visszatérési értékét és a paraméter értékét használja a műveletForce
végrehajtásához.
Példa
A következő példakódban a System.Management.Automation.Cmdlet.ShouldProcess és a System.Management.Automation.Cmdlet.ShouldContinue metódusok a System.Management.Automation.Cmdlet.ProcessRecord metódus felülbírálásán belülről vannak meghívva. Ezeket a metódusokat azonban más bemeneti feldolgozási módszerekből is meg lehet hívni.
protected override void ProcessRecord()
{
if (ShouldProcess("ShouldProcess target"))
{
if (Force || ShouldContinue("", ""))
{
// Add code that performs the operation.
}
}
}