新しいMVC3プロジェクトを作成し、F5キーを押して、サンプルページを見ました。
次に、NuGetを使用してNinject.MVC拡張を取得しました。Ninjectのドキュメント「MVC3アプリケーションの設定方法」に従って、global.asaxを変更しました。
public class MvcApplication : 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 });
}
protected override IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
return kernel;
}
protected override void OnApplicationStarted()
{
base.OnApplicationStarted();
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
アプリを実行すると、次の例外を除いて黄色の死の画面が表示されます。
InvalidOperationException-シーケンスに要素が含まれていません。
System.Linq.Enumerable.Single(...)で
Ninject.Web.Mvc.Bootstrapper.Initialize(...)67行目。
そして、確かに、そのファイルの67行目が.Single()を呼び出しているため、例外がスローされます。
何が悪いのですか?