首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PowerShell cmdlet参数验证

PowerShell cmdlet参数验证
EN

Stack Overflow用户
提问于 2009-10-08 14:37:18
回答 1查看 2.6K关注 0票数 4

我正在编写一个自定义的PowerShell cmdlet,我想知道哪种方法是验证参数的正确方法。

我认为这可以在属性集访问器中完成,也可以在Cmdlet执行期间完成:

代码语言:javascript
复制
[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还是完全不同的东西?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-08 14:50:36

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

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1538230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档