Dela via


Dynamiska cmdlet-parametrar för providers

Leverantörer kan definiera dynamiska parametrar som läggs till i en provider-cmdlet när användaren anger ett visst värde för en av cmdletens statiska parametrar. En provider kan till exempel lägga till olika dynamiska parametrar baserat på vilken sökväg användaren anger när de anropar cmdletarna Get-Item eller Set-Item provider.

Metoder för dynamisk parameter

Dynamiska parametrar definieras genom att implementera någon av de dynamiska parametermetoderna, till exempel System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* och System.Management.Automation.Provider.SetItemDynamicParameters.SetItemDynamicParameters* metoder. Dessa metoder returnerar ett objekt som har offentliga egenskaper som är dekorerade med attribut som liknar dem för fristående cmdletar. Här är ett exempel på en implementering av System.Management.Automation.Provider.ItemCmdletProvider.GetItemDynamicParameters* metod från certifikatprovidern:

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

Till skillnad från de statiska parametrarna för provider-cmdletar kan du ange egenskaperna för dessa parametrar på samma sätt som parametrar definieras i fristående cmdletar. Här är ett exempel på en dynamisk parameterklass som hämtats från certifikatprovidern:

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

Dynamiska parametrar

Här är en lista över de statiska parametrar som kan användas för att lägga till dynamiska parametrar.

Se även

Skriva en Windows PowerShell-provider