(সম্পূর্ণতার জন্য আপডেট করা)
আপনি ব্যবহার করে যে কোনও পৃষ্ঠা থেকে বা যে Session["loginId"]
কোনও শ্রেণি থেকে (যেমন শ্রেণীর পাঠাগারের ভিতরে থেকে) সেশন ভেরিয়েবলগুলি অ্যাক্সেস করতে পারেন usingSystem.Web.HttpContext.Current.Session["loginId"].
তবে দয়া করে আমার আসল উত্তরের জন্য পড়ুন ...
সেশন ভেরিয়েবলগুলিতে অ্যাক্সেসকে সহজ করার জন্য আমি সবসময় এএসপি.এনইটি সেশনের চারপাশে একটি মোড়কের ক্লাস ব্যবহার করি:
public class MySession
{
// private constructor
private MySession()
{
Property1 = "default value";
}
// Gets the current session.
public static MySession Current
{
get
{
MySession session =
(MySession)HttpContext.Current.Session["__MySession__"];
if (session == null)
{
session = new MySession();
HttpContext.Current.Session["__MySession__"] = session;
}
return session;
}
}
// **** add your session properties here, e.g like this:
public string Property1 { get; set; }
public DateTime MyDate { get; set; }
public int LoginId { get; set; }
}
এই ক্লাসটি এএসপি.এনইটি সেশনে নিজের একটি উদাহরণ সংরক্ষণ করে এবং আপনাকে কোনও শ্রেণি থেকে টাইপ-নিরাপদ উপায়ে আপনার সেশন বৈশিষ্ট্যগুলি অ্যাক্সেস করতে দেয়, যেমন:
int loginId = MySession.Current.LoginId;
string property1 = MySession.Current.Property1;
MySession.Current.Property1 = newValue;
DateTime myDate = MySession.Current.MyDate;
MySession.Current.MyDate = DateTime.Now;
এই পদ্ধতির বিভিন্ন সুবিধা রয়েছে:
- এটি আপনাকে প্রচুর টাইপ-কাস্টিং থেকে বাঁচায়
- আপনার অ্যাপ্লিকেশন জুড়ে আপনাকে হার্ড-কোডেড সেশন কী ব্যবহার করতে হবে না (যেমন সেশন ["লগইনআইডি"]
- আপনি মাই সেশনের বৈশিষ্ট্যগুলিতে এক্সএমএল ডক মন্তব্য যুক্ত করে আপনার সেশন আইটেমগুলি নথিভুক্ত করতে পারেন
- আপনি ডিফল্ট মানগুলির সাথে আপনার সেশন ভেরিয়েবলগুলি সূচনা করতে পারেন (উদাহরণস্বরূপ যে তারা নাল নয় তা নিশ্চিত করে)