Я разработал собственный командлет c #.Он имеет три параметра (все они являются строками), и ни один из них не является обязательным.Два из них относятся к параметру set1, а третий - к параметру set2.Это работает нормально, когда пользователь задает параметры из обоих наборов параметров, а затем выдает сообщение, что они не принадлежат одному и тому же набору параметров.Но у меня возникают две проблемы:
- Когда пользователь не дает никаких параметров (поскольку ни один из них не является обязательным), он выдает ошибку. Набор параметров не может быть решен с использованием указанного именованного параметра
- Когда пользователь задает первый параметр и тип, а затем при нажатии на вкладку должен отображаться только второй параметр, поскольку первый и второй находятся в одном наборе параметров, но отображают 2-й и 3-й, что является неправильным.Точно так же он показывает 1-й и 2-й, даже если пользователь сначала вводит 3-й параметр.
Вот код, как я определил параметры:
[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()
{
Может кто-нибудь сказать мне, я пропустилчто-нибудь?Нужно ли больше добавить атрибуты к параметрам?