property method constructors c# asp.net static properties

c# - method - ¿Cómo funcionan las propiedades estáticas en un entorno asp.net?



static property c# (4)

Si tuviera una clase con una propiedad estática que se establece cuando un usuario carga una página en particular, ¿ese valor estático es exclusivo de la sesión de ese usuario?

En otras palabras, si un segundo usuario luego carga la página y establece la propiedad estática, ¿tendrá cada usuario un valor distinto o ambos usarán el segundo valor de los usuarios?


Las estadísticas son exclusivas del dominio de la aplicación, todos los usuarios de ese dominio de aplicación compartirán el mismo valor para cada propiedad estática. Cuando vea la palabra estática, piense que "solo habrá una instancia de esto". El tiempo que dure esa instancia es una pregunta separada, pero la respuesta corta es que es variable.

Si desea almacenar valores específicos para el usuario, busque el estado de la sesión .


Los campos estáticos y las propiedades se comparten en todas las instancias de una clase. Todos tus usuarios terminarán compartiendo el mismo valor.

El valor estará allí hasta que el proceso de trabajo de ASP.NET se recicle (lo que sucede periódicamente).


No, no es nada especial solo porque es asp.net. ASP.NET en sí mismo es solo una colección de ensamblaje regular de .NET. Si desea guardar cosas por sesión, debe usar el estado de la sesión. Si no, tenga cuidado ya que hay muchos hilos que pueden acceder a sus datos estáticos. Debes leer y aprender cómo funcionan los hilos, las cerraduras y las condiciones de carrera juntas.


Además de la respuesta de Bob, esta es la excepción, por supuesto:

public static object Item { get { return HttpContext.Current.Session["some_key"]; } }