[ASP.NET] Wie auf erstellte Objekte zugreifen?
-
Hallo ich lerne gerade ASP.NET, nun will ich in Page_Load ein Objekt erstellen, welches aber auch in anderen Funktionen zur Verfügung steht, da alles Ereignis basierend läuft weiß ich nicht wie ich darauf zugreifen kann. Wenn bestimmtes Event zutrifft soll auf das Objekt zugegriffen werden, wie löst man sowas?
-
Hi kernel64,
hoffe ich habe deine Frage richtig verstanden!
Um auf das Obejkt zugreifen zu können, musst du es als Objektvariable deiner Klasse (von Page abgeleitet) deklarieren!
Zum Beispiel so:class MyPage : Page { private object _MyVar; public void Page_Load(...) { this._MyVar = --irgendwas--; } public void AMethod() { this._MyVar = --irgendwas--; } }
Bei Fragen einfach melden!
Gute Nacht!
-
private object _MyVar;
Wie lang bleibt das Objekt am Leben, bzw. wann wird es Zerstört?
-
Beim Seitenwechsel, so viel ich weiss.
Wenn Du ein Objekt dauerhaft auf mehreren Seiten brauchst,
verwende am besten ein Singleton-Objekt und/oder benutze die global.asax.Falls Du Dich damit nicht auskennst:
http://articles.techrepublic.com.com/5100-10878_11-5771721.html
-
Überlege Dir lieber etwas ohne global.asax.
Gibt zur Not auch noch die Session.
Kann mir keinen Fall vorstellen wo man Objekte von Seite zu Seite haben muss ohne mit Sessions bzw. DB auszukommen.
-
Ich glaub Session halten Objekte für ein Benutzer fest oder?
In der global.asax gibt es die Funktion Session_Start(), kann mir jemand erklären wie ich damit anfangen sollte?
-
Mach es wie Unix-Tom gesagt hat. Pack es in die Session oder lad die Daten eben aus einer DB, denn um Objekte seitenübergreifend nutzen zu können, wirst du eine von beiden Methode nutzen müssen. Die Global.asax würde ich für solche Zwecke nicht benutzen.
-
Die Global braucht man um bestimmte Sachen auszuführen wenn Global etwas gemacht werden soll.
z.B. für eigene Sessionverwaltung, etc.