Я пишу командлет powershell в C # и застрял в проблеме.Я знаю, как извлечь значение параметра из конвейера.Я делаю это, добавляя ValueFromPipelineByPropertyName = true на свойство, украшенное атрибутом Parameter.Я делаю то же самое для свойств, определенных в классе, содержащем динамические параметры.Однако динамические параметры всегда равны нулю.Что может быть не так?
public class ActiveDirectorySpecificParameters
{
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true)]
[ValidateNotNullOrEmpty]
public string Domain { get; set; }
}
и затем в классе командлетов, реализующих IDynamicParameters, у меня есть следующий код:
public object GetDynamicParameters()
{
switch (IdentityStoreType)
{
case Common.Enums.IdentityStoreType.ActiveDirectory:
_parameterSetContext = new DynamicParameters.ActiveDirectorySpecificParameters();
break;
case Common.Enums.IdentityStoreType.WindowsAzure:
_parameterSetContext = new DynamicParameters.AzureSpecificParameters();
break;
case Common.Enums.IdentityStoreType.GSuite:
_parameterSetContext = new DynamicParameters.GSuiteSpecificParameters();
break;
default:
return null;
}
return _parameterSetContext;
}