Oui, vous pouvez stocker n'importe quel objet (je suppose que vous êtes en utilisant ASP.NET avec les paramètres par défaut, qui est en processus d'état de session):
Session["test"]= myList;
Vous devriez jeter en arrière à l'original type d'utilisation:
Comme Richard points, vous devriez prendre des précautions supplémentaires si vous utilisez la session d'autres modes d'état (par exemple, SQL Server) qui nécessitent des objets sérialisables.
Pas exactement vrai. Si vous avez besoin d'utiliser une autre session de stocker de la valeur par défaut dans le proc, la classe devra être sérialisable. C'est pourquoi il est préférable de marquer toutes les classes que vous pousser dans la session de Serializable depuis le début, alors vous pouvez changer le mécanisme, sans avoir à modifier votre code.
Valide du point de mais 1. List<T> est sérialisable si T est sérialisable. 2. La valeur par défaut mode d'état de session est in-process.
Je reçois ce que tu voulais dire et c'est bon vous avez un exemple de code. Je venais tout juste de reformuler le "tout objet" dans votre réponse.
Pour la vieille école VB.net les gens: CType(Session("test"), List(of int32))
J'obtiens cette erreur: Impossible de sérialiser l'état de la session. Dans "StateServer" et "SQLServer" mode, ASP.NET va sérialiser les objets état de session, et comme un résultat de non-objets sérialisables ou MarshalByRef les objets ne sont pas autorisés. La même restriction s'applique si des cas similaires, la sérialisation est fait par la coutume de magasins d'état de session dans la "Coutume" de mode.
Sinon le compilateur m'attendais à une chaîne quand j'ai fait l'objet à l'objet de session.
J'obtiens cette erreur: System.Web.HttpException: Impossible de sérialiser l'état de la session. Dans "StateServer" et "SQLServer" mode, ASP.NET va sérialiser les objets état de session, et comme un résultat de non-objets sérialisables ou MarshalByRef les objets ne sont pas autorisés. La même restriction s'applique si des cas similaires, la sérialisation est fait par la coutume de magasins d'état de session dans la "Coutume" de mode
Je reçois 'HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'HttpContextBase' could be found (are you missing a using directive or an assembly reference?
List<Cat> cats =newList<Cat>{newCat(){Name="Sylvester",Age=8},newCat(){Name="Whiskers",Age=2},newCat(){Name="Sasha",Age=14}};Session["data"]= cats;foreach(Cat c in cats)System.Diagnostics.Debug.WriteLine("Cats>>"+ c.Name);//DEBUGGG
Oui, vous pouvez stocker n'importe quel objet (je suppose que vous êtes en utilisant ASP.NET avec les paramètres par défaut, qui est en processus d'état de session):
Vous devriez jeter en arrière à l'original type d'utilisation:
Comme Richard points, vous devriez prendre des précautions supplémentaires si vous utilisez la session d'autres modes d'état (par exemple, SQL Server) qui nécessitent des objets sérialisables.
List<T>
est sérialisable siT
est sérialisable. 2. La valeur par défaut mode d'état de session est in-process.CType(Session("test"), List(of int32))
Oui. La plate-forme écrivez-vous pour? ASP.NET C#?
Puis, à récupérer:
J'ai trouvé dans un fichier de classe en dehors de la portée de la Page, de la façon décrite ci-dessus (que j'ai toujours utilisé) n'a pas de travail.
J'ai trouvé une solution de contournement dans ce "contexte", comme suit:
et
Sinon le compilateur m'attendais à une chaîne quand j'ai fait l'objet à l'objet de session.
'HttpContextBase' does not contain a definition for 'Current' and no extension method 'Current' accepting a first argument of type 'HttpContextBase' could be found (are you missing a using directive or an assembly reference?
Essayer cette..