मैं स्ट्रक्चर मैप के साथ mvc.net का उपयोग कर रहा हूं ताकि मेरे लिए सभी रिपॉजिटरीज और सेवाओं को स्कैन और पंजीकृत किया जा सके। अब मैं सिंगलटन द्वारा पंजीकरण और कैश करना चाहता हूं। मैं कैसे कर सकता हूँ?मैं सिंगलटन द्वारा असेंबली और कैश में ऑटो स्कैन प्रकार के लिए स्ट्रक्चरमैप को कैसे कॉन्फ़िगर कर सकता हूं?
IContainer container = new Container(x => {
// Register Repositories and Services
x.Scan(y => {
y.AssemblyContainingType<SomeRepository>();
y.AssemblyContainingType<SomeService>();
y.IncludeNamespaceContainingType<SomeRepository>();
y.IncludeNamespaceContainingType<SomeService>();
});
// Register Controllers
x.Scan(y => {
y.TheCallingAssembly();
y.AddAllTypesOf<IController>().NameBy(type => type.Name.Replace("Controller", ""));
});
});
+1 बीटीडब्लू, किसी को कॉल करने की आवश्यकता नहीं है। AddAllTypesOf(); स्कैन() में सिंगलटन कॉन्वेन्शन के रूप में। प्रोसेस() प्रकार (ओं) को reg reg जाएगा। –
ozczecho
मुझे 'स्कैन' में उन 3 लाइनों की आवश्यकता क्यों है? 'ए। (नया सिंगलटन कन्वेंशन()) के बीच क्या अंतर है;' और 'ए। एडलट टाइप्स ();'? क्या वे दो वास्तव में जरूरी हैं? और यदि मेरे पास अन्य इंटरफ़ेस है, तो क्या मुझे फिर से दोनों लाइनों का उपयोग करने की आवश्यकता है? –
tyron
अत्यधिक वर्बोज़, लेकिन एक चैंप की तरह काम किया। वास्तव में सोचें कि यदि कथन का उपयोग करने की आवश्यकता हो, लेकिन मैं एपीआई बदलने वाला नहीं हूं। यह कहने के बाद कि मैं एपीआई नहीं बदलूंगा, इसका मतलब यह नहीं है कि मैं बेहतर नहीं कर सकता –