我正在用C#编写Powershell cmdlet,但遇到了问题。我知道如何从管道中检索参数值。 我通过在装饰有Parameter属性的属性上添加'ValueFromPipelineByPropertyName = true'来实现。我对包含动态参数的类中定义的属性执行相同的操作。但是,动态参数始终为空。 怎么了?
public class ActiveDirectorySpecificParameters
{
[Parameter(Mandatory = true, ValueFromPipelineByPropertyName = true)]
[ValidateNotNullOrEmpty]
public string Domain { get; set; }
}
然后在实现IDynamicParameters的cmdlet类中,我具有以下代码:
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;
}