webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > .NET

.NET I detta forum diskuteras ämnen som berör .NET-plattformen, bland annat asp.net.

Svar
 
Trådverktyg Visningsalternativ
Äldre 2002-12-09, 09:44   #1
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
leende Request-objekt --> DLL

Hej,

Hur kommer jag åt och definierar ett requestobjekt (Det som finns i ASP, vet inte vilken DLL det är).

Jag vill alltså skicka med ett requestobjekt som argument till en subrutin. Så vad definierar jag den som (as ???)? Och vad måste jag länka in för att det skall fungera?

Är det luddigt? I sånna fall säg till så skriver jag en gång till.

Mvh, Vide
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2002-12-09, 11:50   #2
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
Vi talar om att komma åt requestobjektet inifrån en activeX-dll, eller?

Isåf:

1. Lägg till "Microsoft Active Server Pages Object Library" under "References" i ditt projekt.

2. Lägg till ett par variabler i din klasskod:

Kod:
Private MyScriptingContext  As ASPTypeLibrary.ScriptingContext
Private MyRequest           As ASPTypeLibrary.Request
3. Lägg till denna funktion i din klass:

Kod:
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
    Set MyScriptingContext = PassedScriptingContext
    Set MyRequest = MyScriptingContext.Request
End Sub
Nu har du en referens till requestobjektet i "MyRequest" som du kan använda i hela din klass. Har du behov av övriga (Session, Application, Response ..) så kan du få dessa via "MyScriptingContext" (MyScriptingContext.Session osv ..)

4. Gå in under "Project - Properties" och kryssa i "Unattended execution" och "Retained in memory". Vet inte om det är absolut nödvändigt men jag har för mig att dll:en samsas bättre med IIS:en då.
niko besöker inte forumet just nu   Svara med citat
Äldre 2002-12-09, 18:31   #3
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Tackar, väldigt bra svar, skall testa det!

Mvh, Vide
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 09:26   #4
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Hur anropar jag sedan Subben OnStartPage?
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 10:25   #5
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
Det gör du inte. Det gör IIS:en åt dig.
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 10:34   #6
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Märkte det

Men jag har också märkt att jag inte kan anropa mitt objekt i någon annan sub, den säger att objektet inte är satt. Subben som jag försöker att anropa objektet i är public, vilket också objektet är.

??
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 10:43   #7
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
Citat:
Märkte det
Hur märkte du det? Om objekten inte är satta så tyder det ju tvärtom på att OnStartPage inte har körts?
Citat:
Subben som jag försöker att anropa objektet i är public, vilket också objektet är.
Om objektet och subben är private eller public är inte intressant. Du har inte råkat definiera om dom som lokala inne i en sub?
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 12:29   #8
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Jag märkte det genom att deklarera en variabel i klassen och sedan tilldela den en text i OnStartPage, när jag initierar klassen så finns texten i variabeln.

Jag deklarerar inte om ojektet någonstans, det enda stället jag gör någonting med det är när jag deklarerar det publikt i klassen, och sedan tilldelar Response-objektet.
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 12:41   #9
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
? ?

I så fall har jag ingen aning. Om den säger att objektet inte är satt så måste du ju ha gjort nåt misstag vid deklarationen?

Har du nån kod?
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 13:09   #10
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Skumt, nu lade jag in utskrivningen i en egen sub, och nu fungerade det.
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 13:20   #11
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
OK? Fast i motsats till döden och oäkta barn så kommer ju inte felmeddelanden av sig själv. Nånstans måste ju ett kodfel ha funnits?
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 13:32   #12
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Ja, det antar jag också, men vad det kan var fattar jag inte, objektet påverkas ju inte någonstans.
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 14:14   #13
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
En annan sak är att OnStartPage bara körs när du skapar en instans av klassen på en asp-sida. Skapar du en instans i en annan klass så fungerar det inte. Jag löste det genom att göra en bypassfunktion i mellanklassen (den som anropas av asp-sidan), som i sin tur anropar den klassen som funktionen ligger i.

Gör jag rätt, eller finns det något smartare sätt?
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 14:26   #14
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
Bra fråga. För att OnStartPage ska fyras av så skulle jag tro att objekt måste instansieras i rätt kontext dvs via Server.CreateObject och inte via new eller enbart CreateObject.

Du kan ju få tillgång till Server-objektet i din första klass via:

Kod:
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
    Set MyScriptingContext = PassedScriptingContext
    Set MyRequest = MyScriptingContext.Request
    Set MyServer = MyScriptingContext.Server
End Sub
och sen instansiera via:

Kod:
    Set MySecondObject=MyServer.CreateObject( ..
.. känns rätt logiskt iaf ..
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 14:46   #15
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Man vill ju ha samma context så att säga, inte två uppsättningar av samma context. Kör man Set så blir det väl en till instans, eller?
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 14:48   #16
niko
Avregistrerad
 
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81
Citat:
Kör man Set så blir det väl en till instans, eller?
Nä. Det blir ytterligare en referens till samma kontext.
niko besöker inte forumet just nu   Svara med citat
Äldre 2003-02-04, 14:51   #17
Vide
Medlem
 
Vides avatar
 
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105
Ah, det är klart...

Tackar!
__________________
Lite musik: VideGeiger.com och iTunes
Vide besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > .NET

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 18:44.


Powered by: vBulletin Version 3.8.6
Copyright © webForum