यह चाल एमवीसी के 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"
/>
मैं तुम्हें इस पर सही जवाब दे दिया के रूप में यह सवाल का जवाब
यहां इस तरह के एक वर्ग है कि चाल करना होगा है। मैं जो कुछ भी ढूंढ रहा था उसे लागू करने की इस विधि से अवगत था, लेकिन अगर मैं वर्तमान में उपयोग कर रहा हूं, तो इसका उपयोग करने के बजाय निर्भरता इंजेक्शन को संभालने का एक वैकल्पिक तरीका था, तो मुझे अधिक दिलचस्पी थी। – Trotts
मैं थोड़ी देर के लिए इसके साथ संघर्ष कर रहा हूं और मैंने पाया है कि सबसे अच्छा तरीका, अच्छा या बुरा ... – retslig