Udostępnij za pośrednictwem


Parametry dynamiczne poleceń cmdlet dostawców

Dostawcy mogą definiować parametry dynamiczne dodawane do polecenia cmdlet dostawcy, gdy użytkownik określa określoną wartość dla jednego ze statycznych parametrów polecenia cmdlet. Na przykład dostawca może dodać różne parametry dynamiczne na podstawie ścieżki, którą użytkownik określa podczas wywoływania poleceń cmdlet Get-Item lub Set-Item dostawcy.

Metody parametrów dynamicznych

Parametry dynamiczne są definiowane przez zaimplementowanie jednej z metod parametrów dynamicznych, takich jak System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* i System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters* metod. Te metody zwracają obiekt, który ma właściwości publiczne, które są ozdobione atrybutami podobnymi do autonomicznych poleceń cmdlet. Oto przykład implementacji System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* metody pobranej od dostawcy certyfikatu:

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

W przeciwieństwie do statycznych parametrów poleceń cmdlet dostawcy można określić cechy tych parametrów w taki sam sposób, jak parametry są definiowane w autonomicznych poleceniach cmdlet. Oto przykład dynamicznej klasy parametrów pobranej od dostawcy certyfikatów:

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();
}

Parametry dynamiczne

Oto lista parametrów statycznych, których można użyć do dodawania parametrów dynamicznych.

Zobacz też

pisanie dostawcy programu Windows PowerShell