Verificare che i dati immessi dall'utente rispettino determinati criteri è di fondamentale importanza per non incorrere in sgradite sorprese.
La classe StringValidator, del namespace System.Configuration, può essere utile al fine di verificare che una stringa contenga un numero minimo di caratteri, non ve ne siano di indesiderati e che non superi una determinata lunghezza.
I criteri della validazione vengono definiti creando una nuova istanza della classe.
Il costruttore StringValidator(Int32) verifica il numero minimo di caratteri, l'overload StringValidator(Int32, int32) verifica il numero minimo e massimo di caratteri, infine la versione del costruttore StringValidator(Int32, int32, String) aggiunge a quanto detto la verifica per i caratteri con consentiti.
Realizziamo una semplice pagina, con una TextBox per l'input dell'utente, un Button per inviare i dati al server e infine una Label per visualizzare il risultato della validazione.
Alla pressione del bottone sarà eseguito il metodo:
protected void ValidaInput_Click(object sender, EventArgs e) { StringValidator myStringValidator = new StringValidator(2, 8, "%&#@"); string stringToValidate = UserInput.Text; if (myStringValidator.CanValidate(stringToValidate.GetType())) { try { myStringValidator.Validate(stringToValidate); MyLabel.Text = "stringa corretta"; } catch (ArgumentException ex) { MyLabel.Text = ex.Message.ToString(); } } }
Con il metodo CanValidate verifichiamo che l'oggetto da validare corrisponda al tipo che il validatore si aspetta, dopodiché con il metodo Validate verifichiamo che la stringa rispetti i criteri definiti dall'istanza di StringValidator.
Il namespace System.Configuration contiene altri validatori, derivati tutti dalla classe astratta ConfigurationValidatorBase, che si possono rivelare utili in diverse situazioni:
- CallbackValidator
- DefaultValidator
- IntegerValidator
- LongValidator
- PositiveTimeSpanValidator
- RegexStringValidator
- StringValidator
- SubclassTypeValidator
- TimeSpanValidator
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
- Selettore CSS :has() e i suoi casi d'uso avanzati
- Ottimizzare le performance usando Span<T> e il metodo Split
- Combinare Container Queries e Media Queries
- Potenziare la ricerca su Cosmos DB con Full Text Search
- Supportare la sessione affinity di Azure App Service con Application Gateway
- Simulare Azure Cosmos DB in locale con Docker
- Utilizzare Container Queries nominali