Hallo ich habe ein Problem mit meinen Klassen.
Ich habe mir mehrere Klassen geschrieben von denen ich in ASP gerne ein Objekt erstellen möchte. das ich in mehreren Methoden verwenden kann.
Wenn ich das objekt aber in zwei Methoden aufrufe, so ruft c# immer ein neues objekt auf, so das ich die Eigenschaften die ich vorher zugewiesen haben nicht verwenden kann.
Beispiel:
public partial class Test : System.Web.UI.Page
{
protected TestKlasse Objekt = new Testklasse();
puplic void Methode1()
{
Objekt.Nummer = 1;
}
puplic void Methode2()
{
if (Objekt.Nummer = 1) "es funktioniert";
}
}
was mach ich falsch. Wer kann helfen
Danke schonmal im vorraus
Knollo
Hallo Knollo,
Das Problem ist, dass die Page-Objekte bei jedem Seitenaufruf neu erstellt werden, in deinem Fall damit eben auch das Objekt in der Membervariable.
Wenn du Objekte über mehrere Seitenaufrufe hinweg erhalten willst, kannst du diese im Sessionstate hinterlegen:
Session["EinBeliebigerName"]= Objekt;
// respektive
Objekt = (Objekt)Session["EinBeliebigerName"];
Am besten, du suchst mal nach Sessionstate o.ä. Die Verantwortliche Klasse ist HttpSessionState, das Objekt ist zu erreichen mittels Page.Session.
Grüße,
Andre
Original von VizOne
Hallo Knollo,Das Problem ist, dass die Page-Objekte bei jedem Seitenaufruf neu erstellt werden, in deinem Fall damit eben auch das Objekt in der Membervariable.
Wenn du Objekte über mehrere Seitenaufrufe hinweg erhalten willst, kannst du diese im Sessionstate hinterlegen:
Session["EinBeliebigerName"]= Objekt; // respektive Objekt = (Objekt)Session["EinBeliebigerName"];
Am besten, du suchst mal nach Sessionstate o.ä. Die Verantwortliche Klasse ist HttpSessionState, das Objekt ist zu erreichen mittels Page.Session.
Grüße,
Andre
Danke Andre , eigentlich hätte ich da selber drauf kommen müssen
Genau genommen muss man doch auch noch entshceiden ob das projekt für die session (aktueller user)= oder für die gesamte applikation (alle user) persistent sein soll
Oder sehe ich das falsch?
Weiß auch nicht welcher fall für dich da gerade zutrifft
Mein Stackoverflow Profil
Skype Name : Boas.Enkler (bitte einen hinweis in der Kontaktanfrage damit ich euch vom Spam unterscheiden kann)
Und Dein Objekt sollte die Schnittstelle ISerializable implementieren, da es bei anderen SessionModes als "InProc" zwischen zwei Anforderungen serialisiert/deserialisiert wird.
Grüsse