2012-05-26 14 views
5

मैं चाहता हूं कि मेरा एप्लिकेशन हमेशा सिंगलटन के रूप में सेवाओं का उपयोग करे, मैं डिफ़ॉल्ट रूप से सिंगलटन स्कोप का उपयोग करने के लिए निनजेक्ट कैसे स्थापित करूं? मैं अपने प्रकार के पंजीकरण के लिए सम्मेलनों का उपयोग कर रहा हूं, क्या मुझे बाइंड <> विधि का उपयोग करने की आवश्यकता है?मैं सभी प्रकार के लिए डिफ़ॉल्ट रूप से सिंगलटन स्कोप का उपयोग करने के लिए निंजा 3 कैसे कहूं?

उत्तर

8

Hy, मान लिया जाये कि सब अपनी सेवाओं IService से विरासत आप लिख सकते हैं निम्नलिखित

तरह

kernel.Bind(x => x 
.FromThisAssembly() 
.SelectAllClasses().InheritedFrom<IService>() 
.BindAllInterfaces() 
.Configure(b => b.InSingletonScope())); 

आप की आवश्यकता हो सकती है निम्न का उपयोग कर बयान

using Ninject.Extensions.Conventions; 

उपयोग सम्मेलनों जोड़े इसे अपनी जरूरतों के लिए थोड़ा सा tweek।

+1

3.0.1.10 संस्करण में इस हस्ताक्षर के साथ बाइंड विधि नहीं है। – Alexanderius

+0

@ एलेक्सेंडरियस, यह एक निंजा है। एक्सटेंशन। रूपांतरण एक्सटेंशन। –