初めてNinjectを設定しようとしています。私はIRepositoryインターフェイスとRepositoryの実装を持っています。私は、ASP.NET MVCを使用している、と私はそうのような実装を注入しようとしている:Ninjectは発砲しない?
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 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);
}
}
そして、ここではBaseModuleクラスです
public class BaseModule : StandardModule
{
public override void Load()
{
Bind<IRepository<BlogPost>>().To<Repository<BlogPost>>();
}
}
ただし、Index()アクションを参照すると、_repo.Insert(b)を使用しようとすると「オブジェクト参照がオブジェクトのインスタンスに設定されません」というメッセージが表示されます。私は何を外すのですか?
あなたはNinjectのどのバージョンを使用していますか? –
バージョン1.0を使用しています –