Domanda

Sto scrivendo un cmdlet PowerShell personalizzato, e vorrei sapere quale è il modo corretto per convalidare un parametro.
Ho pensato che questo potrebbe essere fatto sia nella funzione di accesso insieme di proprietà o durante l'esecuzione 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
        }
    }
}

Qual è l'approccio "standard"? setter di proprietà, ProcessRecord o qualcosa di completamente diverso?

È stato utile?

Soluzione

Se possibile, è preferibile che i parametri convalidati dal runtime specificando convalida Attributi sulla definizione dei parametri.

  

Windows PowerShell può convalidare gli argomenti passati al cmdlet parametri in diversi modi. Windows PowerShell può convalidare la lunghezza, la gamma, e il modello dei personaggi della tesi. Si può convalidare il numero di argomenti a disposizione (il conteggio).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top