Я определил следующие наборы параметров в 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"