![]() |
|
|
|||||||
| .NET I detta forum diskuteras ämnen som berör .NET-plattformen, bland annat asp.net. |
![]() |
|
|
Trådverktyg | Visningsalternativ |
|
|
#1 |
|
Medlem
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105 |
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 |
|
|
|
|
|
#2 |
|
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 Kod:
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set MyScriptingContext = PassedScriptingContext
Set MyRequest = MyScriptingContext.Request
End Sub
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å. |
|
|
|
|
|
#3 |
|
Medlem
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105 |
Tackar, väldigt bra svar, skall testa det!
![]() Mvh, Vide |
|
|
|
|
|
#4 |
|
Medlem
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105 |
Hur anropar jag sedan Subben OnStartPage?
|
|
|
|
|
|
#5 |
|
Avregistrerad
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81 |
Det gör du inte. Det gör IIS:en åt dig.
|
|
|
|
|
|
#6 |
|
Medlem
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. ?? |
|
|
|
|
|
#7 | ||
|
Avregistrerad
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81 |
Citat:
Citat:
|
||
|
|
|
|
|
#8 |
|
Medlem
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. |
|
|
|
|
|
#9 |
|
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? |
|
|
|
|
|
#10 |
|
Medlem
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.
|
|
|
|
|
|
#11 |
|
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?
|
|
|
|
|
|
#12 |
|
Medlem
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.
|
|
|
|
|
|
#13 |
|
Medlem
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? |
|
|
|
|
|
#14 |
|
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
Kod:
Set MySecondObject=MyServer.CreateObject( .. |
|
|
|
|
|
#15 |
|
Medlem
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?
|
|
|
|
|
|
#16 | |
|
Avregistrerad
Registrerad: 2002-06-16
Inlägg: 2 415
Lösningar: 81 |
Citat:
|
|
|
|
|
|
|
#17 |
|
Medlem
Registrerad: 1999-12-05
Ort: Toronto, Kanada
Inlägg: 6 094
Lösningar: 1105 |
Ah, det är klart...
![]() Tackar! |
|
|
|
![]() |
| Trådverktyg | |
| Visningsalternativ | |
|
|