मैंने अभी आईओसी कंटेनरों के साथ खेलना शुरू कर दिया है और इसलिए निनजेक का पीछा किया है।एमवीसी 3 + निनजेक्ट - कैसे करें?
पसीने और आंसुओं के कई घंटों के बाद भी मैं यह नहीं समझ सकता कि निनजेक्ट के साथ मेरे एमवीसी 3 एप्लिकेशन को कैसे सेट अप करें।
अब तक मेरे पास है:
Global.asax.cs
public class MvcApplication : Ninject.Web.Mvc.NinjectHttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
DependencyResolver.SetResolver(new MyDependencyResolver(CreateKernel()));
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
protected override IKernel CreateKernel()
{
var modules = new [] { new ServiceModule() };
return new StandardKernel(modules);
}
}
ServiceModule.cs
internal class ServiceModule : NinjectModule
{
public override void Load()
{
Bind<IGreetingService>().To<GreetingService>();
}
}
MyDependencyResolver.cs
public class MyDependencyResolver : IDependencyResolver
{
private IKernel kernel;
public MyDependencyResolver(IKernel kernel)
{
this.kernel = kernel;
}
public object GetService(System.Type serviceType)
{
return kernel.TryGet(serviceType);
}
public System.Collections.Generic.IEnumerable<object> GetServices(System.Type serviceType)
{
return kernel.GetAll(serviceType);
}
}
GreetingService.cs
public interface IGreetingService
{
string Hello();
}
public class GreetingService : IGreetingService
{
public string Hello()
{
return "Hello from GreetingService";
}
}
TestController.cs
public class TestController : Controller
{
private readonly IGreetingService service;
public TestController(IGreetingService service)
{
this.service = service;
}
public ActionResult Index()
{
return View("Index", service.Hello());
}
}
हर बार जब मैं सूचकांक लोड करने का प्रयास यह देखने या तो केवल अतिप्रवाह अपवाद या एक HTTP 404 त्रुटि फेंकता है - अगर मैं सभी Ninject कोड को दूर यह, पूरी तरह से काम करता है क्या गलत?
बिल्कुल सही! - निर्भरता संकल्प के बारे में पता चला। – ebb
-1। मैं आपके नमूना ऐप को डाउनलोड करने के लिए आपके लिंक पर गया था। इसमें फाइलें गायब हैं और संकलित नहीं होंगे –
@ क्रिस्टियन पायने सब वहाँ है। बस कैसे पढ़ो! सीआई सर्वर यह सुनिश्चित करता है कि यह –