---
title: "Request-objekt --> DLL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/61603-request-objekt-dll"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "Vide"
published: "2002-12-09T09:44:55.000Z"
updated: "2003-02-04T14:51:19.000Z"
replies: 16
views: 507
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/61603-request-objekt-dll"
---

# Request-objekt --> DLL

## #1 — Vide, 2002-12-09T09:44Z

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

Permalänk: https://www.webforum.nu/p/61603

## #2 — niko, 2002-12-09T11:50Z

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:

```
Private MyScriptingContext  As ASPTypeLibrary.ScriptingContext
Private MyRequest           As ASPTypeLibrary.Request
```

3\. Lägg till denna funktion i din klass:

```
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å.

Permalänk: https://www.webforum.nu/p/879253

## #3 — Vide, 2002-12-09T18:31Z

Tackar, väldigt bra svar, skall testa det! :D

Mvh, Vide

Permalänk: https://www.webforum.nu/p/879524

## #4 — Vide, 2003-02-04T09:26Z

Hur anropar jag sedan Subben OnStartPage?

Permalänk: https://www.webforum.nu/p/937559

## #5 — niko, 2003-02-04T10:25Z

Det gör du inte. Det gör IIS:en åt dig.

Permalänk: https://www.webforum.nu/p/940434

## #6 — Vide, 2003-02-04T10:34Z

Märkte det :e

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.

??

Permalänk: https://www.webforum.nu/p/940436

## #7 — niko, 2003-02-04T10:43Z

> 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?

> 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?

Permalänk: https://www.webforum.nu/p/940442

## #8 — Vide, 2003-02-04T12:29Z

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.

Permalänk: https://www.webforum.nu/p/940492

## #9 — niko, 2003-02-04T12:41Z

? ?

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?

Permalänk: https://www.webforum.nu/p/940497

## #10 — Vide, 2003-02-04T13:09Z

Skumt, nu lade jag in utskrivningen i en egen sub, och nu fungerade det. :)

Permalänk: https://www.webforum.nu/p/940509

## #11 — niko, 2003-02-04T13:20Z

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?

Permalänk: https://www.webforum.nu/p/940514

## #12 — Vide, 2003-02-04T13:32Z

Ja, det antar jag också, men vad det kan var fattar jag inte, objektet påverkas ju inte någonstans. :l

Permalänk: https://www.webforum.nu/p/940520

## #13 — Vide, 2003-02-04T14:14Z

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?

Permalänk: https://www.webforum.nu/p/940554

## #14 — niko, 2003-02-04T14:26Z

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:

```
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
    Set MyScriptingContext = PassedScriptingContext
    Set MyRequest = MyScriptingContext.Request
    Set MyServer = MyScriptingContext.Server
End Sub
```

och sen instansiera via:

```
    Set MySecondObject=MyServer.CreateObject( ..
```

.. känns rätt logiskt iaf ..

Permalänk: https://www.webforum.nu/p/940562

## #15 — Vide, 2003-02-04T14:46Z

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?

Permalänk: https://www.webforum.nu/p/940575

## #16 — niko, 2003-02-04T14:48Z

> Kör man Set så blir det väl en till instans, eller?

Nä. Det blir ytterligare en *referens* till *samma* kontext.

Permalänk: https://www.webforum.nu/p/940577

## #17 — Vide, 2003-02-04T14:51Z

Ah, det är klart... :)

Tackar!

Permalänk: https://www.webforum.nu/p/940581

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/61603-request-objekt-dll
