GetRequiredService()
और GetService()
के बीच क्या अंतर है।जब GetRequiredService को GetService के बजाय उपयोग करना चाहिए?
GetRequiredService()
का उपयोग करते समय बेहतर विचार है?
GetRequiredService()
और GetService()
के बीच क्या अंतर है।जब GetRequiredService को GetService के बजाय उपयोग करना चाहिए?
GetRequiredService()
का उपयोग करते समय बेहतर विचार है?
आपको शायद ही कभी इन विधियों को कॉल करना होगा, क्योंकि आपको कभी भी जहां संभव हो वहां कन्स्ट्रक्टर इंजेक्शन का उपयोग करना चाहिए।
दुर्लभ मामलों में, जैसे कारखानों या गतिशील रूप से कमांड हैंडलर को तुरंत चालू करने के लिए, आप इसे स्वयं हल कर सकते हैं।
कहा जा रहा है, तो आप GetRequiredService
का उपयोग करना चाहिए जहां सेवा की आवश्यकता होती है । जब सेवा पंजीकृत नहीं होती है, तो यह अपवाद फेंक देगा।
दूसरी तरफ GetService
वैकल्पिक निर्भरता, जो सिर्फ वापस आ जाएगी null
जब ऐसी कोई पंजीकृत सेवा है के लिए है।
अंतर यह है कि GetService<T>()
null
देता है यदि यह सेवा नहीं मिल रहा है। GetRequiredService<T>()
इसके बजाय InvalidOperationException
फेंकता है।
आपको ध्यान रखना चाहिए कि यदि आप बाहरी डी प्रदाता का उपयोग कर रहे हैं, तो यह अर्थशास्त्र थोड़ा बदल सकता है, उदाहरण के लिए, स्ट्रक्चर मैप में दोनों कार्य अलग-अलग व्यवहार करते हैं: https://github.com/structuremap/StructureMap.Microsoft.DependencyInjection/issues/37 – rekiem87