C# PowerShell cmdlet参数验证
我正在编写一个自定义PowerShell cmdlet,我想知道验证参数的正确方法。C# PowerShell cmdlet参数验证,c#,powershell,validation,cmdlets,C#,Powershell,Validation,Cmdlets,我正在编写一个自定义PowerShell cmdlet,我想知道验证参数的正确方法。 我认为这可以在属性集访问器中完成,也可以在Cmdlet执行期间完成: [Cmdlet(VerbsCommon.Add,"X")] public class AddX : Cmdlet { private string _name; [Parameter( Mandatory=false, HelpMessage="The name of the X")]
我认为这可以在属性集访问器中完成,也可以在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或完全不同的东西?如果可能,最好由运行时通过在参数定义上指定来验证参数 Windows PowerShell可以通过多种方式验证传递给cmdlet参数的参数。Windows PowerShell可以验证参数字符的长度、范围和模式。它可以验证可用参数的数量(计数)