这个参数似乎根本没有被"设置"为参数。验证设置无效,自动完成也无效。输入参数名称也不起作用。
我知道我以前使用过动态参数。但这一次,我漏掉了什么。只是想不出来是什么。
Function Add-Control() {
DynamicParam {
$ParamAttribute = New-Object Parameter
$ParamAttribute.Mandatory = $true
$ParamAttribute.ParameterSetName = '__AllParameterSets'
$AttributeCollection = New-Object System.Collections.ObjectModel.Collection[System.Attribute]
$AttributeCollection.Add($ParamAttribute)
$controlTypes = @("TextBox", "Label", "DataGrid")
$AttributeCollection.Add((New-Object ValidateSet($controlTypes)))
$RuntimeParam = New-Object System.Management.Automation.RuntimeDefinedParameter('Type', [string], $AttributeCollection)
$RuntimeParamDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
$RuntimeParamDictionary.Add('Type', $RuntimeParam)
return $RuntimeParamDictionary
}
Process {
Write-Host ($PSBoundParameters['Type'])
}
}
Add-Control -Type "Test"
# $null