निर्भरता मैं वर्तमान में निम्नलिखित कोड का उपयोग कर रहा ले जाने क्या कथन का उपयोग करने के लिए होता है:जब मैं इंजेक्शन
public class MyProvider
{
public MyProvider()
{
}
public void Fetch()
{
using (PopClient popClient = new PopClient())
{
....
}
}
}
क्योंकि मैं इस तथ्य की वजह विधि प्राप्त करें और इकाई परीक्षण करने में सक्षम होना चाहता हूँ कि मैं कर सकते हैं ' टी मॉक पॉप क्लाइंट, मैंने एक इंटरफेस और एक रैपर क्लास बनाया जो पॉप क्लाइंट में कॉल करता है। मेरे अद्यतन कोड लगता है:
public class MyProvider
{
private readonly IPopClient popClient;
public MyProvider(IPopClient popClient)
{
this.popClient = popClient;
}
public void Fetch()
{
using (var pop3 = popClient)
{
....
}
}
}
मैं निर्भरता इंजेक्शन के लिए Ninject का उपयोग कर रहा हूँ और मैं काफी यकीन है कि प्रभाव किस तरह का कथन का उपयोग अद्यतन कोड में होगा के बाद से पहले से ही Ninject PopClient का एक उदाहरण बनाया नहीं कर रहा हूँ और यह इंजेक्शन निर्माता में।
क्या उपयोग कथन पॉप 3 ऑब्जेक्ट का निपटान करेगा और पॉप क्लाइंट ऑब्जेक्ट को अकेले छोड़ देगा, इसलिए निनजेक्ट इसे संभाल सकता है या क्या उपयोग कथन निनजेक्ट में हस्तक्षेप करेगा?
इस मामले में उचित दृष्टिकोण क्या है? कोई अंतर्दृष्टि बहुत उपयोगी होगी।
यदि आप पॉप क्लाइंट का निपटान करते हैं, तो MyProvider ऑब्जेक्ट का क्या होता है? इसे भी निपटान नहीं किया जाना चाहिए? क्योंकि कक्षा में एकमात्र डिस्पोजेड रीडोनली सदस्य छोड़ दिया गया है। यदि ऐसा है, तो मुझे लगता है कि MyProvider वर्ग के लिए एक निपटान विधि डालना बेहतर है। –