2010-10-21 14 views
10

जब एक एएसपीनेट एप्लिकेशन को यूआरएल के बारे में अधिसूचित किया जाता है, तो यह उचित नियंत्रक और विशेष रूप से उचित विधि के लिए मार्ग बनाता है।एएसपीनेट एमवीसी 2 नियंत्रक कैसे तत्काल हैं?

उन नियंत्रकों ढेर एक बार पर रखा हैं? या क्या वे प्रत्येक अनुरोध के लिए तत्काल तत्काल हो जाते हैं?

उदाहरण के लिए, मैं एक LINQ करने वाली एसक्यूएल वर्ग उस वर्ग के घोषणा में instantiated हो जाता है के साथ एक नियंत्रक है का कहना है। अगर मेरे पास उस नियंत्रक में रूट के अनुरोध हैं, तो क्या मैंने एन अलग-अलग linq-to-sql क्लास ऑब्जेक्ट्स को बनाया है, प्रत्येक अपने नियंत्रक के उदाहरण में या केवल 1?

मेरे पेट कहता है मुझे नियंत्रकों धागा सुरक्षा कारणों से अनुरोध के अनुसार एक उत्पन्न हुए हैं लेकिन मैं अपने जठरांत्र ओरेकल से बेहतर मार्गदर्शन की खुदाई नहीं कर पा रहे।

+2

एक प्रश्न में जठरांत्र ओरेकल के उपयोग के लिए +1। –

+0

* गैस्ट्रोइंटेस्टाइनल ऑरैकल *, लॉल :-)))))))) +1 –

उत्तर

7

वे डिफ़ॉल्ट रूप से DefaultControllerFactory द्वारा हर बार instantiated मिलता है। विशेष रूप से, GetControllerInstance में,

(IController)Activator.CreateInstance(controllerType); 

CreateController पहले कहा जाता है जो GetControllerType कॉल नियंत्रक नियंत्रक नाम के आधार पर प्रकार और नेमस्पेस मार्ग डेटा टोकन में पारित कर दिया पाने के लिए कर रहा है। फिर यह GetControllerInstance पर कॉल करता है जो नियंत्रक का एक उदाहरण बनाता है।

MVC framework source code itself से कोई बेहतर मार्गदर्शिका नहीं है।

आप IControllerFactory को लागू करने से अपने स्वयं के ControllerFactory को परिभाषित करने और उसके बाद पर नियंत्रण कैसे और कब नियंत्रकों instantiated कर रहे हैं कर सकते हैं।

+0

धन्यवाद। क्या यह एमएसडीएन पर कहीं विस्तृत है? ऐसा लगता है कि मेरे साथ अपने प्रश्नों का उत्तर देने के लिए मुझे 50/50 शॉट लगता है। – MushinNoShin

+1

स्रोत कोड के लिंक के साथ अद्यतन किया गया है। यह हमारे बीच उत्सुकता के लिए अमूल्य है :) –

+2

स्रोत कोड को देखने के लिए एक बात है लेकिन यदि आप स्रोत सर्वर सेट अप करने के लिए निम्न मार्गदर्शिका का पालन करते हैं तो आप कोड के माध्यम से कदम उठा सकते हैं क्योंकि यह वास्तव में अच्छा विचार देता है यह कैसे काम करता है http://weblogs.asp.net/gunnarpeipman/archive/2010/07/04/stepping-into-asp-net-mvc-source-code-with-visual-studio-debugger.aspx – Chao

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