Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Απορία με Session instance μιας class

Îåêßíçóå áðü ôï ìÝëïò geoneo. Τελευταία δημοσίευση από το μέλος Dimitris Papadimitriou στις 08-05-2007, 01:35. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-05-2007, 20:31 31563

    Απορία με Session instance μιας class

    Καλησπέρα

    έχω φτιάξει μία class ας πούμε myclass

    ορίζω στο session start στο Global.asax

    myclass GlobalClass =null;

    μετά στο form load μιας σελίδας

    φτιάχνω το instance της class ως εξής :

    protected void Page_Load(object sender, EventArgs e)

    {

       if (!IsPostBack)

             {

             Session["GlobalClass"] = null;

             Session["GlobalClass"] = new myclass();

             ((myclass)Session["GlobalClass"]).fname = "a name";

             ((myclass)Session["GlobalClass"]).lname = "a lname";

             }

    }

    Τώρα το σενάριο είναι σε ένα session κάθε φορά που μπαίνω στην σελίδα να δημιουργείται και ένα instance της myclass

    και να κρατώ τις τιμές της my class στα post back... μέσω της Session["GlobalClass"]

    καλά μέχρι εδώ Η απορία μου είναι  : Τί γίνεται το παλιό instance από προηγούμενη επίσκεψη στη σελίδα ?

    Aυτό που θέλω είναι να φτιάχνεται και να υπάρχει κάθε φορά που μπαίνω στην σελίδα ένα και μοναδικό

    instance της class και να μην υπάρχουν garbage instances της class με αποτέλεσμα να μου

    φουσκώνει το session .....

    Ευχαριστώ για την όποια βοήθεια ..

    Γιώργος Νικολιδάκης 

     

  •  07-05-2007, 21:56 31568 σε απάντηση της 31563

    Απ: Απορία με Session instance μιας class

    Καταρχήν δεν χρειάζεται να κάνεις τίποτα στο Global.asx.

    Σε αυτή τη σελίδα συνοψίζονται οι τρόποι που μπορείς να διαχειριστείς το state ενός αντικειμένου στην ASP.NET. Αφιέρωσε λίγο χρόνο για να τη διαβάσεις.

    Θα δεις ότι το κατάλληλο σημείο γι αυτό που θέλεις να αποθηκεύσεις είναι το ViewState και όχι το Session.


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-05-2007, 22:48 31569 σε απάντηση της 31568

    Απ: Απορία με Session instance μιας class

    Κατ' αρχήν ευχαριστώ για την απάντηση -:)

    Τα πράγματα ώμως είναι πολύ πιο σύνθετα

    εγώ έδωσα μια απλοϊκή περίπτωση για να περιγράψω την απορία μου...

    η πρώτη μου υλοποίηση για να καταλάβεις  ήταν με SesionState

    στην συνέχεια όμως αναγκάστηκα να χρησιμοποιήσω Session μεταβλητές γιατι δεν μου

    έβγαινα μια υλοποίηση ενος object data source που χρειαζόταν να χρησιμοποιήσω...

    απλά θέλω να ξέρω τί γίνεται σε αυτήν την περίπτωση......όπως το περιέγραψα αρχικά.....??

     

     

  •  07-05-2007, 23:13 31570 σε απάντηση της 31569

    Απ: Απορία με Session instance μιας class

    geoneo:

    η πρώτη μου υλοποίηση για να καταλάβεις  ήταν με SesionState

    στην συνέχεια όμως αναγκάστηκα να χρησιμοποιήσω Session μεταβλητές

    Δεν καταλαβαίνω. SessionState και Session μεταβλητές είναι το ίδιο πράγμα.

    Αυτό που θέλεις να κάνεις το κάνεις ήδη.  Από τη στιμγή που ξαναθέτεις μια τιμή στο session χρησιμοποιώντας το ίδιο key η προηγούμενη τιμή, αν υπάρχει, μεταφέρετε στον garbage collector και αφήνεται στο έλεός του για καταστροφή. Οπότε είσαι ok.

    Από την άλλη όμως δεν είναι σωστό να χρησιμοποιείς την session μεταβλητή γι αυτό το σκοπό. Αν ο χρήστης κάνει ctrl+clik σε ένα link και ανοίξει μια σελίδα σε διαφορετικό παράθυρο ή tab του web browser υπάρχει περίπτωση να έχεις δυο instances της σελίδας σου, τα οποία θα μοιράζονται την ίδια μεταβλητή. Από ότι καταλαβαίνω δεν το θέλεις αυτό. Ο σωστός τρόπος, εφόσον θέλεις να αποθηκεύεις κάτι σε επίπεδο σελίδας, είναι να χρησιμοποιήσεις το viewstate.
     


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  07-05-2007, 23:52 31573 σε απάντηση της 31570

    Απ: Απορία με Session instance μιας class

    <<Δεν καταλαβαίνω. SessionState και Session μεταβλητές είναι το ίδιο πράγμα. ....>>

    Ναί έχεις δίκιο βέβαια ενοούσα με ViewState....

    Εντάξει τελικά καλύφθηκα ευχαριστώ για τις απαντήσεις σου...

    Μεγάλο πράγμα ο Garbage Collector......

     

  •  08-05-2007, 01:35 31577 σε απάντηση της 31573

    Απ: Απορία με Session instance μιας class

    Αν θέλεις κλείσε την Κατάσταση του θέματος.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems