2011-05-26 16 views
6

मुझे एहसास है कि कन्स्ट्रक्टर इंजेक्शन को प्राथमिकता दी जाती है लेकिन मुझे उत्सुकता है कि इंजेक्शन के दूसरे रूप का उपयोग करते समय निनजेक्ट के प्रासंगिक 'नामित बाइंडिंग' का उपयोग कैसे किया जाए।निर्भरता के साथ निंजा नामित बाइंडिंग का उपयोग कैसे करें रेसोलवर और प्रॉपर्टी इंजेक्शन

विशेष रूप से निर्भरता रिसेल्वर या संपत्ति इंजेक्शन का उपयोग करते समय मैं निम्नलिखित कैसे कर सकता हूं।

Bind<IRepository>().To<AlphaRepository>().Named("Alpha"); 

तो आप अन्य लोगों की तरह निर्दिष्ट कर सकते हैं:

public MyService([Named("Alpha")] IRepository repository) 
{ 
    this.repository = repository; 
} 

उत्तर

15

आपके नामित अल्फा पर काम करने के लिए बाध्य बना सकते हैं

Bind<IRepository>().To<AnotherRepository>().Named("Beta"); 

अपने उदाहरण निर्माता आप AlphaRepository मिल जाएगा प्रयोग किया जाता है ।

आदेश में एक संपत्ति के साथ नाम का उपयोग करने के संपत्ति एक नाम विशेषता ठीक वैसे ही जैसे आप परम के लिए किया था दे:

[Inject, Named("Alpha")] 
public IRepository Foo {get; set;} 
+0

मैं जानता हूँ कि नामित बाध्यकारी बनाने का तरीका है और मैं कैसे बाध्यकारी उपयोग करने के लिए पता एक निर्माता के साथ। मेरा सवाल यह है कि संपत्ति इंजेक्शन के माध्यम से इंजेक्शन करते समय मैं नामित बाध्यकारी का उपयोग कैसे करूं। – Mark

+0

आपके प्रश्न का उत्तर देने के लिए अपडेट किया गया – ryber

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