【发布时间】:2012-06-22 14:51:30
【问题描述】:
我开发了一个自定义 c# cmdlet。它有三个参数(都是字符串),没有一个是强制性的。其中两个属于parameterset1,第三个属于parameterset2。它工作正常,当用户从两个参数集中提供参数时,它会给出它们不属于同一参数集的消息。但是我遇到了两个问题:
- 当用户不提供任何参数(因为它们都不是强制性的)时,它会抛出错误参数集无法使用指定的命名参数解析
- 当用户给出第一个参数并键入 - 然后点击选项卡时,应该只显示第二个参数,因为第一个和第二个在相同的参数集中,但它显示的是第二个和第三个,这是不正确的。同样,即使用户先输入第 3 个参数,它也会显示第 1 和第 2。
这是我如何定义参数的代码:
[System.Management.Automation.Cmdlet(System.Management.Automation.VerbsCommon.Get, "Customcmd")]
public class Get_Customcmd: System.Management.Automation.PSCmdlet
{
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set1")]
public string Param1;
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set1")]
public string Param2;
[System.Management.Automation.Parameter(Mandatory = false, ParameterSetName = "Set2")]
public string Param2;
protected override void ProcessRecord()
{
谁能告诉我我错过了什么?是否应该向参数添加更多属性?
【问题讨论】:
标签: c# parameters powershell-2.0 powershell-cmdlet