Avatar billede speedpete Nybegynder
03. januar 2007 - 14:32 Der er 8 kommentarer og
1 løsning

"global variabel"

Jeg har en mitObjekt af typen MinKlasse, som jeg referer til i hele koden, så jeg har erklæret den på følgende måde:

<script runat="server">
    MinDataType mitObjekt = new MinKlasse();

    public class MinKlasse
    {
        public MinKlasse()
        {
        }
    }
[pageload],[eventhandlere],osv.

Tanken var, at jeg ville instantiere mitObjekt én gang, og ikke for hver gang der sker postback (den indlæser nogle forskellige dataset fra en webservice). Jeg ved ikke om dette er måden at gøre det på?

Jeg har prøvet bare at sige
MinDataType mitObjekt;
og flytte instantieringen ned i PageLoad under !IsPostBack, men det virker som om den ikke initialiseres ordentligt?
Avatar billede dr_chaos Nybegynder
03. januar 2007 - 14:37 #1
så skal du lave et statisk objekt ud af din klasse.
Men det kan give problemer.
Alternativt kan du gemme objekt i en session og hente det fra sessionen efter postback.
Avatar billede speedpete Nybegynder
03. januar 2007 - 14:54 #2
Ja, jeg valgte sesssionsløsningen. Det ser ud til at virke, hvis jeg tjekker for hver pageload, om session["objektet"]==null, og så kun opretter objektet i det tilfælde.
Avatar billede speedpete Nybegynder
03. januar 2007 - 14:55 #3
... men du skal være velkommen til at få pointsne?
Avatar billede dr_chaos Nybegynder
03. januar 2007 - 14:57 #4
tjaa det bestemmer du. Jeg har jo ikke hjulpet så meget.
Evt kan vi dele.
Uanset hvad du vælger er der ingen sure miner hos mig :)
Avatar billede speedpete Nybegynder
03. januar 2007 - 15:00 #5
Tja, jeg har ikke fattet meningen med at samle på points, så du får dem.
Avatar billede arne_v Ekspert
03. januar 2007 - 15:00 #6
bemaerk at static (eller singleton) er det samme som Application - ikke det samme
som Session
Avatar billede speedpete Nybegynder
03. januar 2007 - 15:08 #7
Nu rører du ved noget interessant - jeg havde først inmplementeret klassen som en singleton, uden rigtig at vide, at den så ville leve på applikationsniveau. Den indeholder nogle data, som kun meget sjældent ændres, så derfor ville det give mening at instantiere den én gang på serveren, og ikke for hver session. Men jeg vidste ikke, hvordan jeg skulle lave en periodisk opdatering for fange evt. ændringer i datagrundlaget.
Men du siger at en statisk klasse er det samme som at lave en Singleton (med Singleton tænker jeg på Design Patterns)?
Avatar billede arne_v Ekspert
03. januar 2007 - 15:14 #8
static er en ikke objekt orienteret maade at lave det samme som man laver med
singleton idag

----

det nemmeste er at lade den kode som opdaterer data grundlag enten opdatere eller
notificere singleton
Avatar billede speedpete Nybegynder
03. januar 2007 - 15:16 #9
ok, tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester