क्या अन्य लोगों ने कहा से पर का पालन करें। मेरे पास दो परतें हैं:
कोर परत। यह एक डीएलएल के भीतर है जो लगभग सभी वेब ऐप परियोजनाओं में जोड़ा जाता है। इसमें मेरे पास सत्र सत्र वर्ग है जो सत्र राज्य गेटर्स/सेटर्स के लिए कड़वाहट का काम करता है। इसमें निम्नलिखित कोड शामिल हैं:
public class SessionVar
{
static HttpSessionState Session
{
get
{
if (HttpContext.Current == null)
throw new ApplicationException("No Http Context, No Session to Get!");
return HttpContext.Current.Session;
}
}
public static T Get<T>(string key)
{
if (Session[key] == null)
return default(T);
else
return (T)Session[key];
}
public static void Set<T>(string key, T value)
{
Session[key] = value;
}
}
किसी भी प्रकार के लिए जेनेरिक नोट करें।
मैं फिर विशिष्ट प्रकारों के लिए गेटर्स/सेटर्स भी जोड़ता हूं, विशेष रूप से स्ट्रिंग क्योंकि मैं अक्सर स्ट्रिंग के साथ काम करना पसंद करता हूं। उपयोगकर्ताओं को प्रस्तुत चर के लिए शून्य के बजाय लक्षण।
ई।छ:
public static string GetString(string key)
{
string s = Get<string>(key);
return s == null ? string.Empty : s;
}
public static void SetString(string key, string value)
{
Set<string>(key, value);
}
और इसी तरह ...
मैं तो सार करने के लिए रैपर बनाने कि दूर और आवेदन मॉडल के लिए इसे लाने के लिए।
public class CustomerInfo
{
public string Name
{
get
{
return SessionVar.GetString("CustomerInfo_Name");
}
set
{
SessionVar.SetString("CustomerInfo_Name", value);
}
}
}
आप विचार सही: उदाहरण के लिए, अगर हम ग्राहक विवरण है? :)
नोट: स्वीकार्य उत्तर पर टिप्पणी जोड़ने पर बस एक विचार था। हमेशा एक सर्वर सर्वर का उपयोग करते समय सत्र में उन्हें संग्रहीत करते समय ऑब्जेक्ट्स क्रमबद्ध होते हैं। जब वेब फार्म पर जेनिक्स का उपयोग करके ऑब्जेक्ट को आजमाने और सहेजना बहुत आसान हो सकता है और यह तेजी से बढ़ता है। मैं काम पर एक वेब फार्म पर तैनात करता हूं ताकि यह देखने के लिए कि कोर ऑब्जेक्ट सीरियलज़ेबल है या नहीं, यह देखने के लिए कोर लेयर में मेरे कोड पर चेक जोड़ा गया है, सत्र गेटर्स और सेटर को एन्सेप्लेट करने का दूसरा लाभ :)
स्रोत
2008-10-24 20:25:41
पूरी तरह से उत्तर देने के लिए धन्यवाद। बहुत अच्छा! –
कोई समस्या नहीं, एचटीएच:) –
ग्रेट दृष्टिकोण! मैं लंबे समय से कुछ इसी तरह का उपयोग कर रहा हूं, लेकिन जेनेरिक शामिल नहीं किया था। यह अलग-अलग डेवलपर्स के साथ समान सत्र चर बनाने वाली कई समस्याओं से बचाता है। – DOK