Problema con variabili globali

martedì 06 luglio 2010 - 11.19

CloudStrife91 Profilo | Newbie

Salve, ho un piccolo ma fastidiosissimo problema

Io avrei dichiarato delle variabili, oserei dire a livello di classe (per intenderci, subito dopo: "Partial Class classe"), in modo da utilizzarle in tutte le funzioni che ho scritto.
Non capisco perchè, ma ogni volta che accade un evento, queste variabili vengono reinizializzate, come se rieseguisse tutto il codice della classe, rendendo di fatto totalmente inutile il loro utilizzo...

Grazie anticipate per l'eventuale aiuto!

Gluck74 Profilo | Guru

purtroppo si, una classe viene sempre ricreata ad ogni PostBack.
le applicazioni asp.net, sono applicazioni StateLess, ovvero non si ricordano cosa è successo un attimo prima.
Quindi se il codice che dici tu, viene eseguito ad esempio al click di un pulsante, tutto ricomincia da capo perché viene eseguito un nuovo PostBack.

Spiega meglio la situazione e magari posta un pochetto di codice così risolviamo.

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

CloudStrife91 Profilo | Newbie

....ah...

A dire la verità, il problema è molto semplice, a me serve un'oggetto ArrayList, dichiarato globalmente che mi permetta di immagazzinare dei dati e poi poterli leggere ogni volta che l'applicazione ne avesse il bisogno, tutto qua.

Sareste così gentili da provare a suggerirmi una soluzione?

Grazie ancora!

CloudStrife91 Profilo | Newbie

Una soluzione l'ho trovata per il momento, non so nè se è il modo sbagliato nè se è l'unico, ma per ora sto usando questo metodo:

Ho in ogni metodo una variabile Dati dichiarata come ArrayList, tramite la modifica della proprietà Application, ed il passiaggio di un nome ad essa, il dato viene posizionato da qualche parte ().
Leggendo invece quella proprietà passandogli come attributo un nome riesco invece a recuperarla!

Gluck74 Profilo | Guru

giusto appunto puoi usare variabili Application tipo:

Application["myAttay"] = ......

le variabili Application sono condivise da tutti gli utenti per tutte le sessioni.
Attenzione solo che non sono valori tipizzati, quindi in lettura ti restituisce sempre un object, e se non è assegnata (o non esiste) ti restituisce null

Ci sono altre soluzioni più "sottili" e raffinate, ma questa può andare benissimo.

Ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5