webForumDet fria alternativet

Genomföra så att static bara lever under sessionen

.NET

3 svar · 465 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Frågan#1

Finns det någon flagga eller liknande så att static bara lever under en webrequest eller session?

Skall underhålla ett gammalt projekt där repositories är static alltså lever under applikationen vilket har visat sig inte alls vara bra.

Så jag undrar om man måste skriva om en del, eller om det finns en flagga man kan ändra i web.config t.ex.?

Medlem sedan maj 20012 812 inlägg
#2

Jag tror inte det går att få de static under bara en session.

Jag kan se 2 andra lösningar, det först är att skapa en instance och lägga den i sessionstaten. Den andra är att skapa en instance och lägga den i en static collection och med hjälp av sessionsID hämta upp rätt instance (det kräver dock att du tänker multithreading när du accessar din collection).

- M

Medlem sedan aug. 20003 575 inlägg
#3

Gladh skrev:

Jag tror inte det går att få de static under bara en session.

Jag kan se 2 andra lösningar, det först är att skapa en instance och lägga den i sessionstaten. Den andra är att skapa en instance och lägga den i en static collection och med hjälp av sessionsID hämta upp rätt instance (det kräver dock att du tänker multithreading när du accessar din collection).

- M

Okej, det var det jag var rädd för, blir att arbeta om lite.

Medlem sedan dec. 19996 721 inlägg
#4

Två fungerande alternativ

1. Skapa i Session_OnStart och lägg i Session
2. Skapa i BeginRequest (gärna i en egen HttpHandler) och lägg i Context.Items

Alternativ 2 är sannlikt det mest korrekta

253 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)