2008-11-19 7 views
38

Si j'ai une application ASP.NET standard, y a-t-il une différence entre faire un objet statique et mettre l'instance d'objet dans l'état Application? À ma connaissance, les deux objets existent UNE SEULE FOIS pour le domaine de l'application.ASP.NET État de l'application par rapport à un objet statique

Deuxièmement, que se passe-t-il si vous avez un objet statique dans une DLL référencée, pour un site ASP.NET. Cela fait aussi partie du domaine de l'application, donc il existera toujours une fois?

+1

Je ne Je ne connais pas les détails, mais je me poserais une question "est-ce que cela fait partie de mon état d'application" - alors mettez-le là. Si c'est quelque chose de statique qui pourrait aussi arriver dans, par exemple, le client Windows - le créerait comme statique. – badbadboy

Répondre

56

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

ASP.NET inclut l'état d'application principalement pour la compatibilité avec ASP classique afin qu'il soit plus facile de migrer les applications existantes à ASP.NET. Il est recommandé de stocker les données dans les membres statiques de la classe d'application au lieu de dans l'objet Application . Cela augmente les performances car vous pouvez accéder à une variable statique plus rapidement que vous pouvez accéder à un élément dans le dictionnaire Application .

Aussi, oui, les variables statiques se comportent de la même manière quel que soit l'endroit où ils sont chargés à partir, et il existe exactement une fois par application domaine (à moins que vous parlez de ceux étiquetés [ThreadStatic])

+0

Vous bénéficiez également d'une sécurité de type lorsque vous utilisez une variable statique au lieu de l'objet d'état de l'application. – BornToCode

Questions connexes