23. oktober 2003 - 19:00Der er
19 kommentarer og 1 løsning
Class der forbliver i hukommelse under session
Jeg har lavet en class som indeholder en masse data jeg har loadet i hukommelsen. Det er jo perfekt i en vb.net app, da jeg kan manipulere og gøre ved uden at den "smider" klassen. Men i ASP.net forsvinder mine instanser jo ved hvert update. Mit spørgsmål er så, hvordan kan jeg få klassen til at forblive i hukommelsen hen over en session? I layout klassen laver jeg en: Public Users as new User_collection()
i Page_load har jeg en: if ispostback = false then Users.loadall() end if
Denne collection holder alle mine brugere, men det dutter jo ikke at jeg skal hente dem hver gang siden loader.
Jammen i asp.net har jeg jo; Public Class layout som vel bliver instantieret hver gang siden loades ikke?
Lad mig omformulere lidt så. Hvordan instantiere jeg i webform koden nedenfor min user_collection én gang, og sidenhen benytter den samme instans?
Public Class WebForm1 Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here End Sub
Public Class Test Private Dim v1 As Integer = 0 Private Shared Dim v2 As Integer = 0 Public Sub New() v1 = v1 + 1 v2 = v2 + 1 End Sub Public Sub Show() Console.WriteLine(v1 & " " & v2) End Sub End Class
Module Main Sub Main() Dim test1 As Test = New Test() test1.Show() Dim test2 As Test = New Test() test2.Show() Dim test3 As Test = New Test() test3.Show() End Sub End Module
Ok, jeg leger lige lidt med det, så får du dine points. Kan jeg få dig til at skrive det ind i webform koden jeg skrev ovenover? Jeg har leget med shared variabler i en vb.net app før, og det kan jeg sagtens få til at funke. Men virker det med en shared class i asp.net...
Det er lige præcist det jeg skal. Den må ikke instantieres igen, for så smider den jo data. Og det skal foregå over flere page loads. Alle sammen på samme side, men stadigvæk.
Hej alle, jeg løste sgu problemet tidligere på aftenen. Løsningen var en ganske almindelig session variabel. Jeg anede ikke at man kunne gemme en aktiv klasse med bundede sub klasser og hele møjet i en session variabel. Var faktisk så overbevist at jeg slet ikke havde prøvet. Dumt :-) Tak for forskellige svar i denne her. arne_v hvis du lige laver et svar, så smider jeg dig nogle point! Odegaard, man kan sige at du var tæt på, men at smide den i en application variabel gør jo faktisk i praksis det samme som en shared erklæring.
ok, jeg troede faktisk du mente en variabel der indeholdt det samme uanset brugersession. Men ja, så er Session jo i stedet svaret. Problemet med Sessions er at hvis du gemmer store objekter her i, så kan det hurtigt sluge en masse resourcer, hvis du har mange brugere samtidigt.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.