如何通过管道获取动态参数的值?

时间:2019-05-17 11:29:02

标签: c# powershell pipeline cmdlet

我正在用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;
        }

0 个答案:

没有答案