2009-08-11 14 views

उत्तर

53

हाँ, आप किसी भी वस्तु (मैं आप डिफ़ॉल्ट सेटिंग के साथ ASP.NET का उपयोग कर रहे मान है, जो प्रक्रिया में सत्र स्थिति) स्टोर कर सकते हैं:

Session["test"] = myList; 

आप इसे वापस मूल प्रकार के लिए डाली चाहिए का उपयोग करें: रिचर्ड बताते

var list = (List<int>)Session["test"]; 
// list.Add(something); 

रूप में, आप अतिरिक्त देखभाल यदि आप अन्य सत्र स्थिति मोड (जैसे SQL सर्वर) है कि वस्तुओं serializable होना करने के लिए की आवश्यकता का उपयोग कर रहे लेना चाहिए।

+5

बिल्कुल सही नहीं बताया है। यदि आपको proc में डिफ़ॉल्ट से भिन्न सत्र स्टोर का उपयोग करने की आवश्यकता है, तो कक्षा को क्रमबद्ध करने की आवश्यकता होगी। यही कारण है कि सत्र में सीरियलज़ेबल के रूप में सत्र में आपके द्वारा चलाए जाने वाले किसी भी वर्ग को चिह्नित करना सबसे अच्छा है- फिर आप अपना कोड संपादित किए बिना तंत्र को बदल सकते हैं। – RichardOD

+0

वैध बिंदु लेकिन 1. 'सूची ' धारावाहिक है यदि 'टी' धारावाहिक है। 2. डिफ़ॉल्ट सत्र स्थिति मोड in-proc है। –

+0

@ मेहर्डद- मुझे आपका मतलब मिल गया और यह अच्छा है कि आपके पास कोड नमूना है। मैं सिर्फ आपके उत्तर में "कोई ऑब्जेक्ट" दोबारा लिखूंगा। – RichardOD

16

हां। आप किस मंच के लिए लिख रहे हैं? एएसपी.नेट सी #?

List<string> myList = new List<string>(); 
Session["var"] = myList; 

फिर, पुन: प्राप्त करने:

myList = (List<string>)Session["var"]; 
4

मैं पृष्ठ के दायरे से बाहर एक वर्ग फ़ाइल में पाया, ऊपर जिस तरह से (जो मैं हमेशा इस्तेमाल किया है) काम नहीं किया।

HttpContext.Current.Session.Add("currentUser", appUser); 

और

(AppUser) HttpContext.Current.Session["currentUser"] 

अन्यथा संकलक एक स्ट्रिंग उम्मीद कर रहा था जब मैं सत्र वस्तु पर वस्तु कहा:
मैं इस "संदर्भ" इस प्रकार एक समाधान के पाया।

+0

मुझे ऐसी त्रुटि मिलती है: System.Web.HttpException: सत्र स्थिति को क्रमबद्ध करने में असमर्थ। 'स्टेटसेवर' और 'एसक्यूएलसेवर' मोड में, एएसपी.नेट सत्र राज्य वस्तुओं को क्रमबद्ध करेगा, और नतीजतन गैर-धारावाहिक वस्तुओं या मार्शलबीरफ वस्तुओं की अनुमति नहीं है। वही प्रतिबंध लागू होता है यदि कस्टम सत्र स्थिति में 'कस्टम' मोड में समान क्रमबद्धता की जाती है –

1

इस प्रयास करें ..

List<Cat> cats = new List<Cat> 
    { 
     new Cat(){ Name = "Sylvester", Age=8 }, 
     new Cat(){ Name = "Whiskers", Age=2 }, 
     new Cat(){ Name = "Sasha", Age=14 } 
    }; 
    Session["data"] = cats; 
    foreach (Cat c in cats) 
     System.Diagnostics.Debug.WriteLine("Cats>>" + c.Name);  //DEBUGGG 
0
YourListType ListName = (List<YourListType>)Session["SessionName"]; 
संबंधित मुद्दे