Condividi tramite


Parametri dinamici del cmdlet del provider

I provider possono definire parametri dinamici aggiunti a un cmdlet del provider quando l'utente specifica un determinato valore per uno dei parametri statici del cmdlet. Ad esempio, un provider può aggiungere parametri dinamici diversi in base al percorso specificato dall'utente quando chiamano i cmdlet del provider Get-Item o Set-Item.

Metodi dei parametri dinamici

I parametri dinamici vengono definiti implementando uno dei metodi dei parametri dinamici, ad esempio i metodi System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* e System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters*. Questi metodi restituiscono un oggetto con proprietà pubbliche decorate con attributi simili a quelli dei cmdlet autonomi. Di seguito è riportato un esempio di implementazione del metodo System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* ricavato dal provider di certificati:

protected override object GetItemDynamicParameters(string path)
{
    return new CertificateProviderDynamicParameters();
}

A differenza dei parametri statici dei cmdlet del provider, è possibile specificare le caratteristiche di questi parametri nello stesso modo in cui i parametri vengono definiti nei cmdlet autonomi. Di seguito è riportato un esempio di una classe di parametri dinamici ricavata dal provider di certificati:

internal sealed class CertificateProviderDynamicParameters
{
  /// <summary>
  /// Dynamic parameter the controls whether we only return
  /// code signing certs.
  /// </summary>
  [Parameter()]
  public SwitchParameter CodeSigningCert
  {
    get
    {
      {
        return codeSigningCert;
      }
    }

    set
    {
      {
        codeSigningCert = value;
      }
    }
  }

    private SwitchParameter codeSigningCert = new SwitchParameter();
}

Parametri dinamici

Di seguito è riportato un elenco dei parametri statici che è possibile usare per aggiungere parametri dinamici.

Vedere anche

scrittura di un provider Windows PowerShell