IServiceProvider
मूल रूप से किसी भी आईओसी कंटेनर के लिए सिर्फ एक सामान्य इंटरफ़ेस है, या यह एक विशिष्ट ढांचे के लिए उपयोग किया जाता है? मैं अपना खुद का हल्का वजन आईओसी कंटेनर चला रहा हूं और मैं जानना चाहता हूं कि मुझे इसे लागू करना चाहिए या नहीं। क्या कोई अन्य इंटरफेस है जिसे मुझे लागू करना चाहिए? मैं या तो एमईएफ या एकता में वास्तव में रूचि नहीं रखता हूं। मैंने बड़े पैमाने पर दोनों का उपयोग किया है और वे वास्तव में मेरे वर्तमान प्रोजेक्ट के लिए काम नहीं करते हैं।'IServiceProvider` का उपयोग किस ढांचे का उपयोग करता है?
उत्तर
IServiceProvider
एक आयातित (या शायद आयोजित ओवर) COM इंटरफेस है कि वस्तु जिसे आप किसी सेवा की पूछताछ के संदर्भ में निजी सुविधाओं के लिए इस्तेमाल किया जा करने का इरादा है है। शब्द 'सेवा' को यहां ढीला रूप से लागू किया गया है, इसका मूल रूप से कोई भी COM ऑब्जेक्ट था जिसका उपयोग GUID के आधार पर किया जा सकता है।
IServiceProvider @ MSDN (.NET reference)
IServiceProviderImpl Class @ MSDN (C++ ATL reference)
नेट में, आप इसे लागू करने के लिए जब तक आप एक ग्राहक है कि विशेष रूप से इसका समर्थन करता है, और कई मामलों में आप अभी तक अविवेक के एक अन्य स्तर पर जोड़ने की जरूरत नहीं होगी की जरूरत नहीं है यह IServiceProvider
का उपयोग करके निहित है। साथ ही, आप सामान्य वस्तुओं को साझा करने या आईओसी/निर्भरता इंजेक्शन के आधार पर अन्य उपयोग पैटर्न को लागू करने के लिए अपनी योजना तैयार कर सकते हैं जो आपकी आवश्यकताओं के अनुसार अधिक लचीला या अधिक कठोर है।
IServiceProvider
के लिए एक अच्छा ऐतिहासिक संदर्भ आईई ब्राउज़र प्लगइन स्पेक है। यहां, इसका उपयोग प्लगइन घटकों को संदर्भ में ब्राउज़र होस्ट सुविधाओं का उपयोग करने की अनुमति देने के लिए किया जाता है। एक COM संदर्भ में, यह इंटरफ़ेस उपयोगी है क्योंकि यह तत्कालता के विवरण छुपाता है और संदर्भ लूप से बचने के लिए ऑब्जेक्ट निर्माण और उपयोग रणनीति के हिस्से के रूप में भी उपयोग किया जा सकता है।
मुझे लगता है कि यह एक सुंदर सामान्य उपयोग इंटरफ़ेस है, इसलिए आप इसे किसी भी चीज़ के साथ उपयोग कर सकते हैं। यह फ्रेमवर्क क्लास लाइब्रेरी में भी नहीं होना चाहिए। एक विशिष्ट उपयोग के लिए, डब्ल्यूसीएफ डाटा सर्विसेज टीम के एलेक्स डी। जेम्स के बारे में एक ब्लॉग है।
मुझे नहीं लगता कि यह आईओसी कंटेनर से कोई लेना देना नहीं है है। मैंने यूनिटी और ऑटोफैक का काफी उपयोग किया है और इसे कभी भी इस्तेमाल नहीं किया है। अपने खुद के रोलिंग के लिए के रूप में, मैं सुझाव है कि आप अधिक मानक सामान्य तरह से अपने स्वयं के कंटेनर इंटरफ़ेस निर्धारित करना होगा:
public interface IContainer
{
T Resolve<T>();
}
कि कुछ बदलाव के साथ सुंदर मानक है, लेकिन है कि अगर आपकी आवश्यकताएं पूरी आप भी सिर्फ IServiceProvider इस्तेमाल कर सकते हैं।
और उस नोट पर, जब तक यह केवल एक अकादमिक अभ्यास न हो, तो आप "निर्भरता इंजेक्शन" पढ़ना चाहेंगे। मार्क सेमैन प्रत्येक कंटेनर को वहां और सिद्धांत और अभ्यास का थोड़ा सा कवर करता है। यही है, मैं अत्यधिक अनुशंसा करता हूं।
https://www.amazon.com/Dependency-Injection-NET-Mark-Seemann/
नया क्रम कैशिंग एपीआई भी इसे इस्तेमाल करता है (.NET 4 के रूप में): http://msdn.microsoft.com/en-us/library/system.runtime.caching.objectcache.host.aspx।
और विजुअल स्टूडियो डिजाइनर भी।
एएसपी.NET 5 "स्वयं-होस्टेड" मोड में IServiceProvider
का उपयोग करता है, यानी, एक एएसपी.NET एप्लिकेशन और कंसोल एप्लिकेशन या सेवा में रनटाइम होस्ट करते समय।
(प्रकार Microsoft.Framework.Runtime.Common.DependencyInjection.ServiceProvider
का एक ऑब्जेक्ट - जो IServiceProvider
लागू करता है - आपके कंसोल ऐप कन्स्ट्रक्टर को पास किया जाता है।)
इस प्रकार, यदि आप एएसपी.NET 5 में एक अलग आईओसी कंटेनर का उपयोग करना चाहते हैं, तो आप इस इंटरफ़ेस को कार्यान्वित करना चाहेंगे। या अन्य आईओसी कंटेनर को उस कक्षा में लपेटें जो इस इंटरफ़ेस को लागू करता है।
एएसपी.नेट कोर (पूर्व एएसपी.नेट 5) हमेशा 'आईएसईसीप्रोवाइडर' का उपयोग करता है, न केवल "स्वयं-होस्टिंग"। – John
- 1. घुलौम किस योजना का उपयोग करता है?
- 2. httpclient किस पोर्ट का उपयोग करता है?
- 3. ट्विटर किस आरएफसी का उपयोग करता है?
- 4. किस पायथन ढांचे का उपयोग करने के लिए?
- 5. आप किस .NET निर्भरता इंजेक्शन ढांचे का उपयोग करते हैं?
- 6. टंबलर किस टेम्पलेट भाषा का उपयोग करता है?
- 7. Google किस दस्तावेज़ जनरेटर का उपयोग करता है?
- 8. सिल्वरलाइट और डब्ल्यूपीएफ किस माप इकाइयों का उपयोग करता है?
- 9. एसओएपी किस पोर्ट नंबर का उपयोग करता है?
- 10. ओपनसीवी के बेयर रूपांतरण का उपयोग किस एल्गोरिदम करता है?
- 11. Google क्रोम किस जीयूआई लाइब्रेरी का उपयोग करता है?
- 12. PHP किस प्रकार का एल्गोरिदम उपयोग करता है?
- 13. PHP ढांचे का उपयोग/सीखना आसान है?
- 14. आरईएसटी सेवाओं का परीक्षण करने के लिए किस स्कैला ढांचे का उपयोग करना है?
- 15. .NET FormsAuthentication.Encrypt() विधि का उपयोग किस एन्क्रिप्शन विधि का उपयोग करता है?
- 16. एसएएल एनोटेशन, किस का उपयोग करना है?
- 17. किस का उपयोग करना है: onSaveInstanceState vs.RetainNonConfigurationInstance?
- 18. किस सॉर्टिंग एल्गोरिदम qsort उपयोग करता है?
- 19. SO_REUSEADDR का उपयोग करता है?
- 20. उत्पादन में कम सीएसएस ढांचे का उपयोग
- 21. .NET में KeyedByTypeCollection का उपयोग करता है?
- 22. इकाई ढांचे में संग्रहीत कार्यों का उपयोग
- 23. स्केपर ढांचे के साथ टोर का उपयोग
- 24. इंडेक्स का उपयोग कब और किस प्रकार का पता है?
- 25. xUnit ढांचे का उपयोग कर प्रदर्शन परीक्षण
- 26. node.js कोको ढांचे का उपयोग कर एडॉन्स
- 27. क्या सिस्टम.एक्सएमएल एमएसएक्सएमएल का उपयोग करता है?
- 28. विंडोज़ पर सी विकास के लिए किस इकाई परीक्षण ढांचे का उपयोग करना है?
- 29. स्प्रिंग ढांचे में किस डिजाइन पैटर्न का उपयोग किया जाता है?
- 30. MarkupExtension.ProvideValue - क्या IServiceProvider वास्तव में उपयोग किया जाता है?
अच्छा! धन्यवाद, मैं करूँगा। – Jordan