【发布时间】:2019-02-24 08:46:12
【问题描述】:
我在 MyCustomCmdlet 中定义了以下参数集,默认参数集为两个:
[Parameter(Mandatory = true, ParameterSetName = one)]
[Parameter(Mandatory = true, ParameterSetName = two)]
[Parameter(Mandatory = true, ParameterSetName = three)]
[Parameter(Mandatory = true, ParameterSetName = four)]
[ValidateNotNullOrEmpty]
[Alias("a")]
public string A { get; set; }
[Parameter(Mandatory = true, ParameterSetName = two)]
[ValidateNotNullOrEmpty]
[Alias("b")]
public string B { get; set; }
[Parameter(Mandatory = true, ParameterSetName = three)]
[SupportsWildcards]
[ValidateNotNullOrEmpty]
[Alias("c")]
public string C { get; set; }
[Parameter(Mandatory = true, ParameterSetName = four)]
[ValidateNotNullOrEmpty]
[Alias("d")]
public string D { get; set; }
[Parameter]
[ValidateNotNullOrEmpty]
public string E{ get; set; }
[Parameter]
[ValidateNotNullOrEmpty]
public string F { get; set; }
在调试期间,我得到了预期的参数集数量,即 4 个具有以下参数:
1.ParameterSetName:一个参数:A,E,F
2.ParameterSetName:两个参数:A、B、E、F
3.ParameterSetName:三个参数:A、C、E、F
4.ParameterSetName:四个参数:A、D、E、F
但是,当我执行时:
MyCustomCmdlet -A 或 MyCustomCmdlet -A -E -F
我收到错误说明,需要强制参数 B,它是默认参数集的一部分。
- 谁能帮我理解这种行为?
- 如何使用参数集“one”执行 cmdlet
【问题讨论】:
标签: c# powershell cmdlets