2010-08-05 2 views
0

Y a-t-il une raison pour laquelle la classe 'SubSonic.Repository.SubSonicRepository' dans l'assembly SubSonic.Core (3.0.0.3) n'est pas marquée comme sérialisable? Ou connaissez une solution de contournement pour sérialiser une classe générée subsonique.Sérialisation avec des objets générés subsoniques

J'ai ajouté un objet généré subsonique dans viewstate et j'ai reçu une erreur disant que l'objet n'était pas marqué comme sérialisable. J'ai donc créé une extension (en utilisant une classe partielle) à mon objet généré que je pensais être suffisant mais il se plaint maintenant à propos de la classe ci-dessus dans le SubSonic Assembly a besoin de marquage comme Serializable aussi.

Répondre

1

Lorsqu'une classe n'est pas sérialisable (et que d'autres classes du même espace de noms sont), il y a généralement une bonne raison.

Le référentiel contient probablement (ou gère) une connexion à la base de données et une connexion n'est pas sérialisable, pour de bonnes raisons. Parce que sur la désérialisation, il serait complexe (et peut-être non sécurisé) d'établir une autre connexion. Vous ne pouviez pas obtenir la même connexion de toute façon.

+0

Merci Henk, je ne pensais pas que la classe de base pourrait contenir de tels détails. Vous avez raison, c'est possible et cela pourrait certainement être un problème pour ajouter de telles informations sensibles dans viewstate. Je suppose que c'est SubSonic ne soutenant pas POCO devient un problème? – DaveHogan

+0

SubSonic prend en charge les POCO - utilisez simplement le dépôt SimpleRepository. Btw. Je vous recommande d'utiliser des classes de modèles de vue spéciales que vous utilisez pour stocker vos entités dans viewstate car les relations 1: n, 1: 1 sont chargées paresseuses. – saintedlama

Questions connexes