【问题标题】:PowerShell cmdlet parameter validationPowerShell cmdlet 参数验证
【发布时间】:2010-12-05 00:36:21
【问题描述】:

我正在编写一个自定义 PowerShell cmdlet,我想知道哪种方法是验证参数的正确方法。
我认为这可以在属性集访问器中或在 Cmdlet 执行期间完成:

[Cmdlet(VerbsCommon.Add,"X")]
public class AddX : Cmdlet {

    private string _name;

    [Parameter(
        Mandatory=false,
        HelpMessage="The name of the X")]
    public string name {
        get {return _name;}
        set {
            // Should the parameter be validated in the set accessor?
            if (_name.Contains(" ")) { 
                // call ThrowTerminatingError
            }
            _name = value;
        }
    }

    protected override void ProcessRecord() {
        // or in the ProcessRecord method?
        if (_name.Contains(" ")) {
            // call ThrowTerminatingError
        }
    }
}

什么是“标准”方法?属性设置器、ProcessRecord 还是完全不同的东西?

【问题讨论】:

    标签: c# powershell validation cmdlets


    【解决方案1】:

    如果可能,最好由运行时通过在参数定义上指定Validation Attributes 来验证参数。

    Windows PowerShell 可以通过多种方式验证传递给 cmdlet 参数的参数。 Windows PowerShell 可以验证参数字符的长度、范围和模式。它可以验证可用参数的数量(计数)。

    【讨论】:

      猜你喜欢
      • 2013-09-16
      • 1970-01-01
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多