Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 16577|Respuesta: 1

[ASP.NET] Los estados de sesión no pueden ser serializados. En modo "StateServer" o "SQLServer"...

[Copiar enlace]
Publicado en 18/11/2017 21:37:45 | | | |
Los estados de sesión no pueden ser serializados. En modo "StateServer" o "SQLServer", ASP.NET serializará objetos de estado de sesión, por lo que no se permiten objetos no serializables ni objetos MarshalByRef. Las mismas restricciones se aplican si la tienda de estado de sesión personalizada realiza una serialización similar en modo "Personalizado".        



Solución:

Las variables no pueden serializarse al asignar una Sesión, así que intenta añadir [Serializable] a la Clase. Resolución de problemas

[Serializable]
Clase pública MyClass
{
.......
}

Hablemos de [Serializable], que se utiliza para informar al compilador de que la clase puede ser serializada

La serialización se refiere al proceso de almacenar el estado de una instancia de objeto en un medio de almacenamiento. En este proceso, los campos público y privado del objeto y el nombre de la clase (incluido el ensamblador en el que reside la clase) se convierten en un flujo de bytes antes de escribir el flujo de bytes en el flujo de datos. Cuando el objeto se desserializa posteriormente, se crea una copia idéntica del objeto original.
Al implementar mecanismos de serialización en un entorno orientado a objetos, debe haber algunos compromisos entre facilidad de uso y flexibilidad. Mientras tengas suficiente control sobre este proceso, puedes hacerlo mayormente automático. Por ejemplo, la simple serialización binaria no es suficiente, o es necesario determinar qué campos de una clase deben ser serializados por una razón específica. Las siguientes secciones explorarán los mecanismos fiables de serialización proporcionados por el framework .NET y destacarán algunas de las características importantes que te permiten personalizar el proceso de serialización según tus necesidades.





Anterior:ASP.NET StateServer que almacena la sesión
Próximo:SQL Server, cómo copiar una tabla para otra
 Propietario| Publicado en 19/11/2017 16:19:48 |
Para algunos objetos que heredan de MarshalByRef, como los objetos DbTransation, no pueden ser serializados. Por lo tanto, no puedes usar Session para almacenar objetos que hereden el tipo MarshalByRef.
La solución es usar la caché y el SessionID para emular la sesión. La clase Cache puede almacenar en caché cualquier tipo de objeto.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com