Laden...

Klassenobjekte in Asp.net verwenden

Erstellt von Knollo vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.459 Views
K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren
Klassenobjekte in Asp.net verwenden

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

1.373 Beiträge seit 2004
vor 17 Jahren

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

K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren

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

1.134 Beiträge seit 2004
vor 17 Jahren

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)

C
1.215 Beiträge seit 2004
vor 17 Jahren

Und Dein Objekt sollte die Schnittstelle ISerializable implementieren, da es bei anderen SessionModes als "InProc" zwischen zwei Anforderungen serialisiert/deserialisiert wird.

Grüsse