Question

J'écris une applet de commande PowerShell personnalisée, et je voudrais savoir quelle est la bonne façon de valider un paramètre.
Je pensais que cela pourrait se faire soit dans le accesseur ensemble de propriétés ou lors de l'exécution 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
        }
    }
}

Quelle est l'approche "standard"? poseur de propriété, ProcessRecord ou quelque chose de complètement différent?

Était-ce utile?

La solution

Si possible, il est préférable que les paramètres soient validés par le moteur d'exécution en spécifiant Attributs de validation sur la définition des paramètres.

  

Windows PowerShell peut valider les arguments passés à cmdlet paramètres de plusieurs façons. Windows PowerShell peut valider la longueur, la plage et le motif des caractères de l'argument. Il peut valider le nombre d'arguments disponibles (le nombre).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top