Cómo manejar las variables estáticas en una biblioteca que se utiliza tanto para el escritorio y la web?

StackOverflow https://stackoverflow.com/questions/1912890

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo algunas clases de biblioteca de C # que hacen uso de variables estáticas. Yo uso estas clases de biblioteca tanto para aplicaciones de escritorio y web. El problema es que, como acabo de descubrir, las variables estáticas no bajan tan bien en un servidor web; los valores son compartidos en todas las sesiones utilizando el sitio web!

¿Cómo puedo conservar las características de una variable estática para su uso en mis aplicaciones de escritorio, mientras se asegura de que cada sesión en mi servidor web tiene sus propios valores independientes para estas variables - pero dentro de la misma sesión, todavía realmente se comporta como una estática?

¿Fue útil?

Solución

valores de las variables estáticas se comparten a través de todos los temas en un dominio de aplicación. En una aplicación ASP.NET la forma recomendada para almacenar datos que se relacionan sólo para el usuario actual es el Sesión .

Si se puede modificar el código de esta biblioteca compartida Yo aconsejaría a extraer una interfaz de estas variables estáticas que proporcionarán un mecanismo para almacenar valores. Esto permitirá que cada aplicación para proporcionar su propia implementación. Para una aplicación de Windows que podría utilizar una implementación que utiliza internamente una variable estática. Para una aplicación ASP.NET que podría utilizar la Sesión. Pero en todos los casos se expone una interfaz única. Esto también tendrá el efecto secundario positivo de la prestación de su código sea más fácil de probar la unidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top