webForumDet fria alternativet

Applikationsvariablar in i COM

.NETur .NET

28 svar · 551 visningar · startad av OveRRidE · sida 2 av 2

Frågan, av OveRRidE

Jag får för mitt liv inte denna kod att fungera. Fråga mig inte varför. Jag har inkluderat referenser till ASP context library i projektet. Public Function GetApplicationVar(strVariableName As String) As Variant Dim objApplication As Object [red]Dim ctxObjectContext As ObjectContext '<< felkod[/red] Dim intError As Integer On Error Resume Next Set ctxObjectConte

Läs frågan i sin helhet →
Medlem sedan juni 20022 599 inlägg
#21

OK. Men isåf finns det väl inget hinder för att du lägger:

Public ctx As ASPTypeLibrary.ScriptingContext

i basmodulen så att den blir tillgänglig överallt?

Medlem sedan feb. 200112 078 inlägg
#22

Helt otroligt! Det funkar inte ändå..

I modulen:

Public ctx As ASPTypeLibrary.ScriptingContext

Public Sub getApplicationVar()
   ctx.Response.Write ("strConn")
End Sub

Samma felmeddelande på andra raden i sub:en.

Medlem sedan juni 20022 599 inlägg
#23

Men getApplicationVar ligger ju i basmodulen och då kan bara anropet till den komma från klassmodulen. Och isåf kan felmeddelandet bara betyda att du anropar den innan ctx tilldelats? I Class_Initialize, rent av?

Medlem sedan feb. 200112 078 inlägg
#24

Varför skulle anropet bara kunna komma från klassmodulen? Jag anropar andra metoder inom samma bas-modul utan problem.

Jag har ingen Class_Initialize i bas-modulen ens.

Jag anropar getApplicationVar i en annan metod, som i sin tur anropas från klassmodulen.

Medlem sedan juni 20022 599 inlägg
#25

Varför skulle anropet bara kunna komma från klassmodulen?

Jag menade att anropet på något sätt måste ha initialiserats i klassmodulen (direkt eller indirekt) eftersom det inte kan komma utifrån (från extern kod).

Men anyway: Du har inte möjligtvis ctx dubbeldeklarerat? Som private i klassmodulen och public i basmodulen, eller lokalt inne i en metod? Annars har jag ingen bra förklaring ..

/red: Jag är ganska säker på att jag har rätt om dubbeldeklareringen.

Medlem sedan feb. 200112 078 inlägg
#26

Den är inte dubbeldeklarerad, det har jag kollat ett par gånger vid det här laget.

Alltså, en metod i klassmodulen (m1) anropar en metod i modulen (m2) som i sin tur anropar ytterligare en metod i m2 och sedan ytterligare en i m2. Så på det sättet härstammar den ju ifrån klassmodulen, men den anropas ju aldrig direkt därifrån. Dessutom borde väl inte detta vara problemet.

Jag skall gå hem nu dock, så jag återkommer på lördag igen.

Tack sålänge!

Medlem sedan juni 20022 599 inlägg
#27

Som sagt om ctx bara är deklarerad som Public i basmodulen och tilldelas i OnStartPage i klassmodulen så ska det funka. Det är nåt enkelt du har förbisett ..

Medlem sedan juni 20022 599 inlägg
#28

Bara så att vi inte pratar förbi varandra. Så här uppfattar jag att du menar:

Medlem sedan feb. 200112 078 inlägg
#29

Hrm. Nu har jag inte projektet framför mig, men det kan vara så att jag deklarerade ctx i klassmodulen och inte i basmodulen. Däremot är den publik, det vet jag.

Jag skall kolla det och återkomma. Tack igen! :)

134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)