2012-09-02 24 views
25

ऐसा लगता है कि एक कॉन्टेक्स्ट क्लास एक कंट्रोल कंसोल है जिसका ऑब्जेक्ट डब्लूसीएफ रिया सेवा में डेटाकॉन्टेक्स्ट और डोमेन कॉन्टेक्स्ट जैसे किसी भी शामिल फ़ंक्शंस का आह्वान कर सकता है। क्या मैं इस अवधारणा को सही ढंग से समझता हूं? यदि हां, तो मुझे अपनी खुद की कक्षा पदानुक्रम में संदर्भ कक्षा बनाने की क्या ज़रूरत है?एक संदर्भ क्या है?

डेटा कॉन्टेक्स्ट के अलावा, नेट फ्रेमवर्क के अन्य प्रसिद्ध संदर्भ वर्ग क्या हैं?

उत्तर

34

आप संबंधित "चीजों" जैसे HttpContext, DbContext, ऑब्जेक्ट कॉन्टेक्स्ट के लिए एक रैपर के रूप में संदर्भ के बारे में सोच सकते हैं। i.e .: HttpContext में कोई भी जानकारी है जो आप HTTP से संबंधित संचालन के लिए पहुंच सकते हैं।

डीबीकॉन्टेक्स्ट में डेटाबेस संचार के लिए विधियों और गुण शामिल हैं। इसी प्रकार ऑब्जेक्ट कॉन्टेक्स्ट।

मैं कहूंगा कि यह किसी चीज़ के लिए प्लेसहोल्डर या संबंधित चीजों का कंटेनर है।

15

मेरे लिए, एक संदर्भ वस्तु वर्तमान निष्पादन पथ से जुड़े मूल्यों और/या फ़ंक्शंस के सेट को परिभाषित करती है। दूसरे शब्दों में, संदर्भ में एक तकनीकी विषय के बारे में बात करने की तरह, नौकरी साक्षात्कार के एक ही विषय के बारे में बोलने से अलग है, संदर्भ उपभोग कोड के रनटाइम पर्यावरण को प्रभावित करने वाले कारकों के आधार पर संदर्भ परिवर्तन। यह अमूर्त प्रतीत होता है, लेकिन मैं इस समय इसका वर्णन करने का एक बेहतर तरीका नहीं सोच सकता!

.NET में एक और प्रसिद्ध संदर्भ HttpContext ऑब्जेक्ट है। एचटीपी ऑपरेशन को संभालने के आधार पर कौन से मूल्य बदले जाएंगे। उदाहरण के लिए, यूआरएल HttpContext.Current.Request.Uri में बदल जाएगा। उम्मीद है कि यह आपके लिए संदर्भ में रखे :)

+0

तो एक संदर्भ एक "सहायक" वर्ग से अधिक है ... – Jess

4

एक संदर्भ आमतौर पर कार्यों के समूह के लिए भंडारण तंत्र होता है। HttpContext, example

किसी व्यक्तिगत HTTP अनुरोध के बारे में सभी HTTP-विशिष्ट जानकारी को Encapsulates।

आपके डब्ल्यूसीएफ उदाहरण के लिए, "संदर्भ" सेवा है। विभिन्न सेवाओं में अलग-अलग संदर्भ होते हैं। संदर्भ के रूप में संदर्भ ग्रैन्युलर के रूप में हो सकता है। कुछ व्यापक हैं, DomainContext की तरह, और कुछ ग्रैन्युलर हैं, जैसे HttpContext

संदर्भ हर जगह हैं, उन्हें तब तक बनाते हैं जब आपको दिमागी डेटा या कार्यों को सेट करने की आवश्यकता होती है जिन्हें डीकॉप्लेड किया जा सकता है।

सभी संदर्भ इस तरह हैं, वे केवल विशेष क्रिया सेट के लिए तर्क को समाहित करते हैं।

Here संदर्भ डिजाइन पैटर्न का वर्णन करने वाला एक और पोस्ट है।

+2

मुझे आपके समानता तक आपकी व्याख्या पसंद आई। – DarthVader

+2

पर्याप्त मेला, मैं इसे किसी भी तरह बेचा नहीं गया था। टिप्पणी के लिए धन्यवाद – devshorts

संबंधित मुद्दे