PowerShell参数值建议

Ant*_*ino 3 c# powershell

我已经用C#编写了一个Cmdlet。是否可以提供特定字符串参数的所有可能值(此示例为“ PackageId”)?

public sealed class InstallPackageCommand : PSCmdlet
{
    [Parameter(Position = 0, Mandatory = true)]
    public string PackageId { get; set; }

    protected override void BeginProcessing()
    {
       //...
    }
} 
Run Code Online (Sandbox Code Playgroud)

Kei*_*ill 5

您可以将ValidateSetAttributeon属性用于该参数,例如:

[ValidateNotNullOrEmpty]
[ValidateSet(new string[] {"a","b","c"})]
[Parameter(Position = 0, Mandatory = true)]
public string PackageId { get; set; }
Run Code Online (Sandbox Code Playgroud)

  • 这是一个好主意。我的值仅在运行时才知道,但这可以通过使用IDynamicParameters接口来实现,在该接口中可以在运行时设置属性。 (2认同)