2010-11-12 9 views
5

को हल कर सकता है, मैं एक मौजूदा प्रोजेक्ट की एक बड़ी गड़बड़ी में निनजेक्ट पेश कर रहा हूं। मैं यह सुनिश्चित करने के लिए एक डायग्नोस्टिक टेस्ट लिखना चाहता हूं कि निनजेक्ट के सभी वर्गों का निर्माण वास्तव में निनजेक्ट द्वारा हल किया जा सकता है ... वास्तव में उनमें से कोई भी बनाये बिना।आसानी से कैसे बताएं कि निनजेक्ट

कारण मैं वास्तविक निर्माण से बचना चाहते हैं इन कक्षाओं के कई की प्रवृत्ति उनके निर्माताओं में डेटाबेस कार्यों को शुरू करने के लिए (आह हाँ मैं जानता हूँ कि) होता है। अन्यथा मैं सिर्फ आज़माएं/कैच

उत्तर

4

वहाँ IResolutionRoot (यानी, आप अगर आप सही जगह पर सही using रों है Kernel के खिलाफ इसका इस्तेमाल कर सकते हैं) पर एक CanResolve विस्तार है साथ Get<T> के माध्यम से उन सब को चलाना शामिल है। एक CreateRequest है जिसका उपयोग आप अनुरोध बनाने के लिए करते हैं। यदि आपको किसी उदाहरण या किसी गहरी जानकारी की आवश्यकता है तो स्रोतों और परीक्षणों में एक नज़र डालें।

1

मैं जानता हूँ कि यह एक पुरानी पोस्ट है, लेकिन यह पहले एक मैंने पाया जब अगर एक वर्ग वास्तव में बुला प्राप्त() और एक अपवाद का जोखिम लिए बिना Ninject द्वारा हल किया जा सकता है कि कैसे पता लगाने के लिए के लिए खोज रहा था।

Ninject संस्करण 3.0.2 एक विधि CanResolve जो एक बूलियन देता है:

kernel.CanResolve<T>() 

मैं 3.0.2 nuget से मिल गया है, लेकिन इसके वर्तमान अस्थिर (Ninject.3.0.2-अस्थिर-9037) बाजार तो मैं मुझे यकीन नहीं है कि अगर मैं इसे अभी तक उत्पादन में उपयोग करता हूं।

+1

Unfortunally, 'CanResolve' संकल्प पेड़ में नहीं लगती है। तो यदि यह दूसरी आदेश निर्भरता पर बाध्यकारी गायब है, तो यह आपको नहीं बताएगा। –

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