PDA

View Full Version : ديدن محتويات Session



hasina
یک شنبه 26 دی 1389, 11:39 صبح
دوستان سلام

من قصد دارم عناصر يك آرايه رو توي Session بريزم. بعد توي قسمت هاي مختلف برنامه از عناصر توش استفاده كنم. نمي دونم اين كار رو چطوري بكنم.
آيا آرايه رو بزارم تو Session ، يا اينكه عنصرهاي داخل آرايه رو يكي يكي به Session اضافه كنم. و اگه آرايه رو گذاشتم چطوري بخونمش.
و اگه يكي يكي اضافه كردم، چطوري بزارم كه براي خوندش تعداد زيادي عنصر مشكل نداشته باشم (منظورم طريقه نام گذاري داخل Session هست)
من در حال حاضر اين كد رو نوشتم
Session["NoAnswerQuestions"] = tmp
كه در كد بالا tmp نام آرايه اي هست كه توش اعداد مورد نظرم هست.
اگه راهنمايي كنيد ممنون مي شم

cjNet
یک شنبه 26 دی 1389, 21:10 عصر
سلام دوست من .

به نظر من شما یه کلاس ایجاد کن و توش یه آرایه تعریف کن و از اون کلاس یه شی بساز و مقادیر مورد نظرتو در آرایه موجود در کلاس بریز ( مثلا توسط یه متد ) بعد اون شی ای که از اون کلاس ساختی ( و مقادیر مورد نظرتم درون آرایه اون قبلا ریختی ) رو در Session قرار بده ...

امیدوارم مفید باشه ... :لبخندساده:

yosefi_hossein
سه شنبه 28 دی 1389, 13:57 عصر
سلام کل آرایه رو بریز تو 1 session چون session هرچیزی رو به عنوان ورودی قبول میکنه جایی هم که لازم داری از محتویاتش استفاده کنی یک آرایه تعریف کن و بریزش تو ارایه

array x=(array)session["a"];

Javad_Darvish_Amiry
سه شنبه 28 دی 1389, 15:20 عصر
کل آرایه رو بریز تو 1 session چون session هرچیزی رو به عنوان ورودی قبول میکنه
این کار بهتره، چون آرایه هم به هر حال یه شیئه و سشن هر شیئی رو میپذیره. اما یه نکته هم من کنارش اضافه کنم (با اجازه دوستان) اگه چیزی که به سشن اضافه میکنید عمومیه (یعنی برای همه کاربرا مشترکه) تو سشن نریزیدش چون به ازای هر کاربر جداگانه این آیتم تو سشن ذخیره میشه و اصلا بهینه نیست. به جاش از Cache استفاده کنید.
یه نکته دیگه: برای واکشی از سشن (و ایضا cache) این کد:

array x=(array)session["a"];
خوب نیست، چون اگه شیئتون از سشن پاک شده باشه، ایجاد خطا میکنه. به جاش به نظر من از این کد استفاده کنید:


array x = session["a"] as array;
if(!Object.ReferenceEquals(null, x)){
// do your work
}

مرثی. موفق باشید.