Ninject를 처음 설치하려고합니다. IRepository 인터페이스와 저장소 구현이 있습니다. 내가 ASP.NET MVC를 사용하고, 나는 그렇게 같은 구현을 주입하기 위해 노력하고있어 : 여기 BaseModule 클래스의Ninject가 발사되지 않습니까?
public class MvcApplication : NinjectHttpApplication
{
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 = "" } // Parameter defaults
);
}
protected override void OnApplicationStarted()
{
RegisterRoutes(RouteTable.Routes);
}
protected override IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new BaseModule());
return (kernel);
}
}
을 그리고 :
여기public class HomeController : Controller
{
[Inject] public IRepository<BlogPost> _repo { get; set; }
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
var b = new BlogPost
{
Title = "My First Blog Post!",
PostedDate = DateTime.Now,
Content = "Some text"
};
_repo.Insert(b);
return View();
}
// ... etc
}
을 그리고 Global.asax에의
public class BaseModule : StandardModule
{
public override void Load()
{
Bind<IRepository<BlogPost>>().To<Repository<BlogPost>>();
}
}
_repo.Insert (b)를 사용하려고 할 때 Index() 동작을 탐색 할 때 "개체 참조가 개체의 인스턴스로 설정되지 않았습니다."라는 메시지가 나타납니다. 나는 무엇을 떠나야 하는가?
사용하는 Ninject에 어떤 버전 (예제로 사용 HomeController)과 같은 코드를 모든 컨트롤러를 찾는 생성과 AutoControllerModule의
생각해? –
버전 1.0을 사용 중입니다. –