Ultimamente sto lavorando parecchio con gli attributi perchè li trovo estremamente più comodi di un'interfaccia o di una proprietà.
Detto questo, una delle esigenze più comuni è quella di validare il querystring per verificare che i dati siano tutti presenti e corretti. Scrivere ogni volta il codice di controllo mi risulta tedioso e anche affidarmi ad un file di configurazione e ad un metodo di helper per generalizzare il compito mi risulta poco efficace all'atto pratico perchè per capire la validazione devo consultare un secondo file. Alla fine gli attributi mi sono tornati utili anche qui: si decora la classe della pagina con un attributo custom (ad esempio RequiredQueryStringField) passando in input il nome del campo del querystring da validare. Nell'evento Page_Load chiamo un metodo di helper che scorre gli attributi della classe e mi valida il querystring. Se poi la chiamata la metto in una classe base da cui tutte le pagine derivano ecco che il codice si annulla e ci si deve preoccupare solo di inserire gli atributi.
Risultato: Querystring validato, codice pulito e leggibile, niente file esterni.
In realtà ho pensato anche un HttpModule che scatena la validazione prima dell'esecuzione della pagina, ma poichè voglio permettere anche una validazione custom, un po' alla CustomValidator per capirci, devo ancora pensarci bene.
[RequiredQueryStringField("id")] public class MyPage : Page{ private void Page_Load(object sender, EventArgs e){ Helper.Validate(this) } }
con questo snippet mi assicuro che il valore della chiave "id" nel querystring sia presente. Comodo no ;).
P.S. Appena avrò fatto chiarezza sull'HttpModule vedrete tutto pubblicato sul lab.
Stay tuned...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- Javascript, Update Panel e gli eventi, il 17 luglio 2007 alle 00:38
- App_Offline.htm e la sua quasi inutilità, il 22 dicembre 2006 alle 16:22
- ATLAS è molto meglio di ASP.NET AJAX, il 28 ottobre 2006 alle 12:53
- DataBinding con ATLAS, il 3 ottobre 2006 alle 00:01
- Un elogio ai VirtualPathProvider, il 10 giugno 2006 alle 11:25