Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 16577|Répondre: 1

[ASP.NET] Les états de session ne peuvent pas être sérialisés. En mode « StateServer » ou « SQLServer »...

[Copié le lien]
Publié sur 18/11/2017 21:37:45 | | | |
Les états de session ne peuvent pas être sérialisés. En mode « StateServer » ou « SQLServer », ASP.NET sérialise les objets d’état de session, donc les objets non sérialisables ou MarshalByRef ne sont pas autorisés. Les mêmes restrictions s’appliquent si le magasin d’état de session personnalisé effectue une sérialisation similaire en mode « personnalisé ».        



Solution:

Les variables ne peuvent pas être sérialisées lors de l’attribution d’une Session, essayez donc d’ajouter [Serialisable] à la Classe. Résolution de problèmes

[Sérialisable]
classe publique MyClass
{
.......
}

Parlons de [Serialiable], qui sert à informer le compilateur que la classe peut être sérialisée

La sérialisation fait référence au processus de stockage de l’état d’une instance d’objet sur un support de stockage. Dans ce processus, les champs public et privé de l’objet ainsi que le nom de la classe (y compris l’assembleur dans lequel la classe réside) sont convertis en un flux d’octets avant d’écrire le flux d’octets dans le flux de données. Lorsque l’objet est ensuite désérialisé, une copie identique de l’objet original est créée.
Lors de la mise en œuvre de mécanismes de sérialisation dans un environnement orienté objet, il doit y avoir certains compromis entre facilité d’utilisation et flexibilité. Tant que vous avez suffisamment de contrôle sur ce processus, vous pouvez le rendre en grande partie automatique. Par exemple, une simple sérialisation binaire ne suffit pas, ou il est nécessaire de déterminer quels champs d’une classe doivent être sérialisés pour une raison spécifique. Les sections suivantes exploreront les mécanismes de sérialisation fiables fournis par le framework .NET et mettront en avant certaines fonctionnalités importantes qui vous permettent de personnaliser le processus de sérialisation selon vos besoins.





Précédent:ASP.NET StateServer qui stocke la session
Prochain:SQL Server comment copier une table pour une autre
 Propriétaire| Publié sur 19/11/2017 16:19:48 |
Pour certains objets qui héritent de MarshalByRef, comme les objets DbTransation, ils ne peuvent pas être sérialisés. Par conséquent, vous ne pouvez pas utiliser Session pour stocker des objets héritant du type MarshalByRef.
La solution de contournement consiste à utiliser le cache et l’identifiant de session pour émuler la session. La classe Cache peut mettre en cache n’importe quel type d’objet.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com