Onay İsteme

Bu örnek, bir eylem gerçekleştirmeden önce kullanıcıdan onay isteğinde bulunan System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinue yöntemlerinin nasıl çağrıldiğini gösterir.

Önemli

Bu istekleri nasıl Windows PowerShell daha fazla bilgi için bkz. Onay İstenen.

Onay isteği için

  1. SupportsShouldProcessCmdlet özniteliğinin parametresinin olarak ayarlanmış olduğundan emin true olmak. (İşlevler için bu cmdletBinding özniteliğinin bir parametresidir.)

    [Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1",
            SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
    

    Not

    Tek SupportsShouldProcess başına kullanmak, kullanıcıdan onay istenecek bir garanti değildir. İstem, değerinin $ConfirmPreference değerine ve eyleminizin etkisine göre belirlenir. işleminizin ConfirmImpact etkisinin önem derecelerini ayarlamak için kullanın.

  2. Kullanıcının bir Force onay isteğini geçersiz kılarak cmdlet'inize bir parametre ekleyin.

    [Parameter()]
    public SwitchParameter Force
    {
      get { return force; }
      set { force = value; }
    }
    private bool force;
    
  3. if System.Management.Automation.Cmdlet.ShouldContinue yönteminin çağrılıp çağrılmadiğini belirlemek için System.Management.Automation.Cmdlet.ShouldProcess yönteminin dönüş değerini kullanan bir deyimi ekleyin.

  4. if System.Management.Automation.Cmdlet.ShouldContinue yönteminin dönüş değerini ve işlemi gerçekleştirilip gerçekleştirilecek olmadığını belirlemek için parametresinin değerini kullanan ikinci bir Force deyim ekleyin.

Örnek

Aşağıdaki kod örneğinde System.Management.Automation.Cmdlet.ShouldProcess ve System.Management.Automation.Cmdlet.ShouldContinue yöntemleri, System.Management.Automation.Cmdlet.ProcessRecord yönteminin geçersiz kılınma işlemi içinde çağrılır. Ancak, bu yöntemleri diğer giriş işleme yöntemlerinden de çağırebilirsiniz.

protected override void ProcessRecord()
{
  if (ShouldProcess("ShouldProcess target"))
  {
    if (Force || ShouldContinue("", ""))
    {
      // Add code that performs the operation.
    }
  }
}

Ayrıca Bkz.

Windows PowerShell Cmdlet’ini Yazma