7

क्या एएसपी.नेट एमवीसी में कहीं भी है जहां आप रिसोर्सप्रोवाइडर फैक्ट्री का संदर्भ प्राप्त कर सकते हैं जिसे संसाधनों को पुनर्प्राप्त करने के लिए कस्टम डीबी कार्यान्वयन जोड़ने के लिए संपत्ति इंजेक्शन करने के लिए तत्काल किया जाता है?कस्टम संसाधनप्रोवाइडर फैक्ट्री निर्भरता इंजेक्शन

मेरे पास एक कस्टम संसाधन प्रदाता लोड किया जा रहा है लेकिन मैं जानना चाहता था कि प्रदाता के भीतर निर्भरता को इंजेक्ट करने के लिए एक स्टेटिक डी कंटेनर का उपयोग करने का विकल्प था या नहीं।

एमवीसी में भूमिका और सदस्यता प्रदाताओं के लिए आप कैसे इंजेक्ट कर सकते हैं।

उत्तर

4

यह चाल एमवीसी के DependencyResolver.Current में एक इंफ्रास्ट्रक्चर घटक कॉल को लागू करने के लिए है, ताकि आप अपने पसंदीदा डी कंटेनर का उपयोग कर वास्तविक ResourceProviderFactory पंजीकृत कर सकें। इस प्रकार

public class MvcResourceProviderFactory : ResourceProviderFactory 
{ 
    public override IResourceProvider CreateGlobalResourceProvider(
     string classKey) 
    { 
     return GetFactory().CreateGlobalResourceProvider(classKey); 
    } 

    public override IResourceProvider CreateLocalResourceProvider(
     string virtualPath) 
    { 
     return GetFactory().CreateLocalResourceProvider(virtualPath); 
    } 

    private static ResourceProviderFactory GetFactory() 
    { 
     var resolver = DependencyResolver.Current; 

     var factory = resolver.GetService<ResourceProviderFactory>(); 

     if (factory != null) 
     { 
      return factory; 
     } 

     throw new InvalidOperationException(string.Format(
      "No {0} has been registered in the {1}.", 
      typeof(ResourceProviderFactory).FullName, 
      DependencyResolver.Current.GetType().FullName)); 
    } 
} 

इस वर्ग विन्यस्त किया जा सकता:

<globalization 
    resourceProviderFactoryType="MyApp.MvcResourceProviderFactory, MyApp" 
    enableClientBasedCulture="true" uiCulture="auto" culture="auto" 
/> 
+1

मैं तुम्हें इस पर सही जवाब दे दिया के रूप में यह सवाल का जवाब

यहां इस तरह के एक वर्ग है कि चाल करना होगा है। मैं जो कुछ भी ढूंढ रहा था उसे लागू करने की इस विधि से अवगत था, लेकिन अगर मैं वर्तमान में उपयोग कर रहा हूं, तो इसका उपयोग करने के बजाय निर्भरता इंजेक्शन को संभालने का एक वैकल्पिक तरीका था, तो मुझे अधिक दिलचस्पी थी। – Trotts

+0

मैं थोड़ी देर के लिए इसके साथ संघर्ष कर रहा हूं और मैंने पाया है कि सबसे अच्छा तरीका, अच्छा या बुरा ... – retslig

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