Из вашего кода не совсем понятно, где конкретно вы конфигурируете свое ядро. Это должно быть сделано в методе RegisterServices
из ~/App_Start/NinjectMVC3.cs
:
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IAccountsRepository>().To<AccountsRepository>();
kernel.BindFilter<GlobalAuthFilter>(FilterScope.Global, 0);
}
Когда вы устанавливаете пакет Ninject.MVC3
NuGet, тело этого метода будет пустым, и именно здесь вы должны либо напрямую сконфигурировать зависимости, либо определить модули Ninject, которые вы импортируете в этом методе:
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Load(new MyModule());
}
где вы определили пользовательский модуль:
public class MyModule : NinjectModule
{
public override void Load()
{
this.Bind<IAccountsRepository>().To<AccountsRepository>();
this.BindFilter<GlobalAuthFilter>(FilterScope.Global, 0);
}
}