नहीं देख रहा है हाय मैं एक एमवीसी ऐप के साथ निंजा का उपयोग कर रहा हूं।DI ninject नियंत्रकों के लिए काम कर रहा है लेकिन मॉडल
मुझे यकीन है कि मैंने इसे सही तरीके से सेटअप किया है क्योंकि मैं इसे अपने नियंत्रकों के लिए काम करने में सक्षम हूं। यहाँ एक नियंत्रक के लिए एक उदाहरण है और इसे सही ढंग से काम कर रहा है:
public class GstRateController : Controller
{
private readonly IUnitOfWork _unitOfWork;
public GstRateController(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
...
फिर मैंने सोचा कि यह भी एक ViewModel पर अच्छा होगा तो मैं करने की कोशिश की है कि के साथ:
public class SettingController : Controller
{
private readonly IUnitOfWork _unitOfWork;
public SettingController(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
तो फिर मैं दृश्य instantiated द्वारा एक नियंत्रक में मॉडल:
public ActionResult Index()
{
return View("Index", Activator.CreateInstance<SettingViewModel>());
}
लेकिन यह मुझे त्रुटि दे रहा है:
नहीं पी इस वस्तु के लिए परिभाषित arameterless कन्स्ट्रक्टर।
मैं DI के लिए नया हूं। क्या कोई मुझे बता सकता है कि इसे व्यूमोडेल के लिए कैसे प्राप्त किया जाए?
'एक्टिवेटर। क्रिएट इंस्टेंस <सेटिंगिंग व्यू मॉडेल>()' प्रतिबिंब है, न कि निंजा। निनजेक्ट घटकों को स्पष्ट रूप से हल करने के लिए 'kernel.Get()' का उपयोग करता है। लेकिन आपको आमतौर पर कर्नेल का उपयोग अपने ऐप के बीच में नहीं करना चाहिए। इसके बजाय डारिन का जवाब देखें। –