2008-11-19 6 views
38

Wenn ich eine Standard-ASP.NET-Anwendung habe, gibt es einen Unterschied zwischen einem statischen Erstellen eines Objekts im Gegensatz zum Versetzen der Objektinstanz in den Anwendungsstatus?ASP.NET-Anwendungsstatus im Vergleich zu einem statischen Objekt

von meinem Verständnis, beide Objekte existieren ONCE für die App-Domäne.

Zweitens, was passiert, wenn Sie ein statisches Objekt in einer referenzierten DLL für eine ASP.NET-Site haben. Es ist auch Teil der App-Domain, also wird es immer einmal existieren?

+1

I don‘ t kenne Details, aber ich würde mir eine Frage stellen "ist es Teil meines Bewerbungsstaates" - dann lege es dort hin. Wenn es etwas Statisches ist, das zum Beispiel auch in Windows-Client passieren könnte - würde es als statisch erstellen. – badbadboy

Antwort

56

Von: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q312607

ASP.NET enthält Zustand Anwendung in erster Linie für die Kompatibilität mit klassischen ASP, so dass es leichter zu Migrate ist es, bestehende Anwendungen zu ASP.NET. Es wird empfohlen, dass Sie Daten in statischen Membern der Anwendungsklasse statt in dem Application-Objekt speichern. Dies erhöht Leistung, weil Sie auf eine statische Variable schneller zugreifen können als Sie Zugriff auf ein Element in der Anwendung Wörterbuch können.

Auch ja, statische Variablen verhalten sich auf die gleiche Weise, unabhängig davon, woher sie geladen sind, und gibt es genau einmal pro Anwendungsdomäne (es sei denn, Sie über diejenigen reden mit [Threadstatic])

+0

Sie erhalten auch Typsicherheit, wenn Sie anstelle des Anwendungsstatusobjekts die statische Variable verwenden. – BornToCode

Verwandte Themen