Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnekte, çalışma zamanında cmdlet'e eklenen dinamik parametrelerin nasıl tanımlanacağı gösterilmektedir. Bu örnekte, kullanıcı Employee anahtar parametresini her belirttiğinde cmdlet'ine Department parametresi eklenir. Dinamik parametreler hakkında daha fazla bilgi için bkz. Cmdlet Dinamik Parametreleri.
Dinamik parametreleri tanımlamak için
cmdlet sınıf bildiriminde, gösterildiği gibi System.Management.Automation.IDynamicParameters arabirimini ekleyin.
public class SendGreetingCommand : Cmdlet, IDynamicParametersdinamik parametrelerin tanımlandığı nesneyi döndüren System.Management.Automation.IDynamicParameters.GetDynamicParameters* yöntemini çağırın. Bu örnekte,
Employeeparametresi belirtildiğinde yöntemi çağrılır.public object GetDynamicParameters() { if (employee) { context= new SendGreetingCommandDynamicParameters(); return context; } return null; } private SendGreetingCommandDynamicParameters context;Eklenecek dinamik parametreleri tanımlayan bir sınıf bildirin. Dinamik parametreleri bildirmek için statik cmdlet parametrelerini bildirmek için kullandığınız öznitelikleri kullanabilirsiniz.
public class SendGreetingCommandDynamicParameters { [Parameter] [ValidateSet ("Marketing", "Sales", "Development")] public string Department { get { return department; } set { department = value; } } private string department; }
Örnek
Bu örnekte, kullanıcı Employee parametresini her belirttiğinde Department parametresi eklenir.
Department parametresi isteğe bağlı bir parametredir ve validateSet özniteliği izin verilen bağımsız değişkenleri belirtmek için kullanılır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management.Automation; // PowerShell assembly.
namespace SendGreeting
{
// Declare the cmdlet class that supports the
// IDynamicParameters interface.
[Cmdlet(VerbsCommunications.Send, "Greeting")]
public class SendGreetingCommand : Cmdlet, IDynamicParameters
{
// Declare the parameters for the cmdlet.
[Parameter(Mandatory = true)]
public string Name
{
get { return name; }
set { name = value; }
}
private string name;
[Parameter]
[Alias ("FTE")]
public SwitchParameter Employee
{
get { return employee; }
set { employee = value; }
}
private Boolean employee;
// Implement GetDynamicParameters to
// retrieve the dynamic parameter.
public object GetDynamicParameters()
{
if (employee)
{
context= new SendGreetingCommandDynamicParameters();
return context;
}
return null;
}
private SendGreetingCommandDynamicParameters context;
// Override the ProcessRecord method to process the
// supplied user name and write out a greeting to
// the user by calling the WriteObject method.
protected override void ProcessRecord()
{
WriteObject("Hello " + name + "! ");
if (employee)
{
WriteObject("Department: " + context.Department);
}
}
}
// Define the dynamic parameters to be added
public class SendGreetingCommandDynamicParameters
{
[Parameter]
[ValidateSet ("Marketing", "Sales", "Development")]
public string Department
{
get { return department; }
set { department = value; }
}
private string department;
}
}
Ayrıca Bkz.
PowerShell