के साथ कई तर्कों के साथ कन्स्ट्रक्टर IoC कंटेनर के रूप में Ninject का उपयोग करने की कोशिश कर रहा हूं लेकिन यह समझ में नहीं आया कि एक वर्ग का उदाहरण कैसे बनाया जाए जिसमें कन्स्ट्रक्टर में 1 से अधिक पैरामीटर हैं।निनजेक्ट
//On PCL project
public interface IAuthorizationService {
bool Authenticate();
}
//On WP8 Project
pubilc class MyAuthenticator : IAuthorizationService {
public MyAuthenticator(string consumerKey, string consumerSecret, string baseAddress) { ... }
public bool Authenticate() { ... }
}
अब मैं Ninject मॉड्यूल कॉन्फ़िगर करने के लिए तो मैं प्राप्त कर सकते हैं की जरूरत है: मूल रूप से मैं एक पीसीएल पुस्तकालय में प्रमाणीकरण के लिए एक सेवा इंटरफेस और एक WP8 परियोजना है कि निर्माता में प्राप्त करता है Cosumer कुंजी, गुप्त और baseAddress में इसके कार्यान्वयन है IAuthorizationService का एक उदाहरण। तो मेरी कक्षा कोई कंस्ट्रक्टर्स था मुझे क्या करना होगा:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>();
}
}
यदि यह निर्माता के लिए मूल्यों तय किया था मुझे क्या करना होगा:
internal class Module : NinjectModule {
public override void Load() {
this.Bind<IAuthorizationService>().To<MyAuthenticator>().WithConstructorArgument(*/* fixed argument here*/*);
}
}
और Module.Get<IAuthorizationService>()
लेकिन एक उदाहरण प्राप्त करने के लिए क्या अगर संकलन पैरामीटर संकलन समय पर हल नहीं किया जा सकता है? पैरामीटर कैसे पास करें? बाइंड कोड कैसे होना चाहिए?
प्रश्न को क्लैरीफ़ी संपादित करने के लिए संपादित किया गया।
डाउनवोट क्यों? कम से कम टिप्पणी की जानी चाहिए ताकि मैं सवाल बदल सकूं ... –
शायद ऐसा इसलिए है क्योंकि उन्हें लगा कि दस्तावेज़ों को देखकर इस प्रश्न का आसानी से उत्तर दिया जा सकता है: https://github.com/ninject/ninject/wiki/Dependency-Injection- निनजा – BatteryBackupUnit
नहीं, यह नहीं है! यदि आप दस्तावेज़ों को देखते हैं तो सभी कन्स्ट्रक्टर पैरामीटर भी "इंजेक्शन योग्य" होते हैं। मेरे कन्स्ट्रक्टर स्ट्रिंग पैरामीटर है। –