[asp] Save session in class?

Pagina: 1
Acties:

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
Is het mogelijk om een class op te slaan in een sessie en daarna de data weer uit de sessie te lezen en te gebruiken? Volgens mij zou het moeten kunnen, maar ik denk dat bij het uitlezen/toewijzen van de sessie wordt het een variabele ipv een class denk ik. Iemand hier ervaring mee of ideeen hierover?

Moet iets worden als:
code:
1
2
3
4
5
6
Class MyClass
 ...
End Class

Set mijnklasse = New MyClass
Session("klasse_sessie") = mijnklasse

code:
1
2
Dim new_klasse
new_klasse = Session("klasse_sessie")

Je gaat het pas zien als je het doorhebt.


  • El_BingO
  • Registratie: Juli 2001
  • Laatst online: 26-08 12:01
code:
1
2
3
4
5
6
7
8
dim objUser(5) 
set objUser(1) = new clsUser 
set objUser(2) = new clsUser 
set objUser(3) = new clsUser 
. 
. 
. 
session("User")=objUser


Werkt dit? Volgens mij kan je, als je het object plaatst in een array en dan de array in een sessie zet, vervolgens de array er weer uit halen..

  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
El_BingO schreef op 09 augustus 2002 @ 15:17:
code:
1
2
3
4
5
6
7
8
dim objUser(5) 
set objUser(1) = new clsUser 
set objUser(2) = new clsUser 
set objUser(3) = new clsUser 
. 
. 
. 
session("User")=objUser


Werkt dit? Volgens mij kan je, als je het object plaatst in een array en dan de array in een sessie zet, vervolgens de array er weer uit halen..
Titel moet natuurlijk zijn: Save class in session |:(

Ik heb het geprobeerd, maar als ik een functie in een class daarna weer probeer aan te roepen... vergeet het maar. (of ik doe iets fout natuurlijk... :) )

Je gaat het pas zien als je het doorhebt.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Bedoel je niet Save object in session :?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
dubbel...

Je gaat het pas zien als je het doorhebt.


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
drm schreef op 09 augustus 2002 @ 15:28:
Bedoel je niet Save object in session :?
Ehm ja, maar is het dan mogelijk om, als je de sessie hebt uitgelezen, de classfunctions weer aanroepen?

Je gaat het pas zien als je het doorhebt.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Moet je mischien iets doen met Type Casten? Ik weet niet zoveel van asp maar bij .NET is Session gewoon een hashtable ofzo en dus je return type is een Object. Dus mischien moet je hem eerst even terug casten naar het Object wat je wilt hebben

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • Altaphista
  • Registratie: Juli 2001
  • Laatst online: 09:21

Altaphista

1. check manual, 2. ask

Topicstarter
rwb schreef op 09 augustus 2002 @ 16:17:
Moet je mischien iets doen met Type Casten? Ik weet niet zoveel van asp maar bij .NET is Session gewoon een hashtable ofzo en dus je return type is een Object. Dus mischien moet je hem eerst even terug casten naar het Object wat je wilt hebben
Jep dat moet.... alleen heeft vbs maar een beperkt aantal cast functies. In VB kan je gewoon CType gebruiken, maar in VBS niet :'(
Het is idd een object die ik terug krijg, maar kan er niet zo veel mee op dit moment

Je gaat het pas zien als je het doorhebt.


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Als de mogelijkheid er niet is om te casten lijkt me dat dat ook niet nodig is.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

set oObject = server.createobject("PROGID")

set session("blaat") = oObject

...

set oObject = session("blaat")

proberen, lukt het niet meteen, je kan niks verkloten.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Verwijderd schreef op 09 augustus 2002 @ 17:18:
set oObject = server.createobject("PROGID")

set session("blaat") = oObject

...

set oObject = session("blaat")

proberen, lukt het niet meteen, je kan niks verkloten.
Dat wil, maar dat is dan ook een object en geen Class. Wanneer je "server.createobject" verandert in "new MyClass" gaat het dus niet.

Ik ben ook nog aan het zoeken. ... B back 4 more i hope

Verwijderd

asp kent geen classes. Of praten we over ASP.NET?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09:31

Crazy D

I think we should take a look.

ASP (VBscript) heeft wel classes, al valt er over te discusseren of het wel een "echte" class is natuurlijk ;)
Maar
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Class CTest
    Dim m_Blah
    Public Property Get Blah()
        Blah = m_Blah
    End Property
    Public Property Let Blah(New_Blah)
        m_Blah = New_Blah
    End Property
    Sub DoeIets()
        m_Blah = m_Blah & " edit"
    End Sub
End Class

Dim c
Set c = New CTest
c.Blah = "Hallo"
Response.Write c.Blah & "<br>"
c.DoeIets()
Response.Write c.Blah & "<br>"
Set c = Nothing

Geeft als output
code:
1
2
Hallo
Hallo edit

Iig, IIS onder XP (VBscript versie 5.1 oid).

Exact expert nodig?


Verwijderd

oh op die manier. Mja, is totaal zinloos, omdat ASP een lineair executiepad volgt: alles wordt van top to bottom geparst en uitgevoerd. Als je dit wilt gebruiken, maak dan een COM object aan, of gewoon een functie. Dit soort classes kun je niet in de session stoppen, want daar kunnen alleen objects in of valuetypes.

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Verwijderd schreef op 10 augustus 2002 @ 12:22:
oh op die manier. Mja, is totaal zinloos, omdat ASP een lineair executiepad volgt: alles wordt van top to bottom geparst en uitgevoerd. Als je dit wilt gebruiken, maak dan een COM object aan, of gewoon een functie. Dit soort classes kun je niet in de session stoppen, want daar kunnen alleen objects in of valuetypes.
Klopt. Na enig zoekwerk kwam ik tot dezelfde conclusie. vanaf iis 5 kun je vbscript classes maken. Deze zijn echter niet persistent. In ASP.NET kun je als het goed is wel een stap verder met eigengemaakte classes.

Voor nu dus een andere oplossing zoeken.

Hoe moeilijk is dat trouwens, zelf een COM object schrijven? Komt daar veel "rand" programmeerwerk bij kijken? Of is het net simpel als een JavaBean schrijven?

Verwijderd

In VB doe je dat door een ActiveX dll project te starten, een 'class' aan te maken en het een naam te geven. COmpileren, klaar :). In VB programmeer je je class gewoon als anders, met functies en properties. In ASP kun je dan die class in objectformat gebruiken door

set oObject = server.createobject("ProjectName.Classname")

te doen.

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
zneek schreef op 10 augustus 2002 @ 12:25:
[...]

Klopt. Na enig zoekwerk kwam ik tot dezelfde conclusie. vanaf iis 5 kun je vbscript classes maken. Deze zijn echter niet persistent. In ASP.NET kun je als het goed is wel een stap verder met eigengemaakte classes.

Voor nu dus een andere oplossing zoeken.

Hoe moeilijk is dat trouwens, zelf een COM object schrijven? Komt daar veel "rand" programmeerwerk bij kijken? Of is het net simpel als een JavaBean schrijven?
In ASP.NET kan je in ieder geval veel meer met je eigen classes. Maar dat komt omdat ASP.NET ook gewoon in C# of VB.NET geprogrammeert kan worden en dan heb je dus gewoon alle OO Mogelijkheden tot je beschikking die in die talen zitten

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Verwijderd schreef op 10 augustus 2002 @ 12:53:
In VB doe je dat door een ActiveX dll project te starten, een 'class' aan te maken en het een naam te geven. COmpileren, klaar :). In VB programmeer je je class gewoon als anders, met functies en properties. In ASP kun je dan die class in objectformat gebruiken door

set oObject = server.createobject("ProjectName.Classname")

te doen.
Ik neem aan dat je je Object ook nog moet registreren bij de server? Anders kent de script engine het object niet lijkt me.

Verwijderd

klopt. Of een MTS/COM+ package aanmaken, of via
regsvr32 /s mydll.dll

  • zneek
  • Registratie: Augustus 2001
  • Laatst online: 08-02-2025
Nu we het toch over COM objecten hebben. Iemand enig idee hoe moeilijk het is om een Java COM object te bouwen, wat weer in ASP onder IIS gebruikt kan worden? OF zitten daar ook standaard templates voor in Java ontwikkel tools? MMm, misschien kan ik daar beter een apart draadje voor maken, na wat uitzoekwerk uiteraard O-)

Verwijderd

J++ 6 :)
Pagina: 1