Привязка приватного члена контроллера
У меня есть приложение MVC, использующее пакет Ninject.Mvc3, а также проект тестирования NUnit для него.
Все контроллеры наследуются от следующего базового контроллера
public class BaseController : Controller
{
[Inject]
protected IRepository Repository { get; set; }
// ...
}
NinjectWebCommon.RegisterServices
похоже
private static void RegisterServices(IKernel kernel)
{
kernel.Settings.InjectNonPublic = true;
kernel.Bind<IRepository>().To<Repository>().InRequestScope();
// ...
}
Во время работы веб-проекта привязка работает.
Однако как настроить ядро Ninject в проекте тестирования для привязки члена Repository в контроллере? Я не могу понять, как это сделать, что член Repository использует ядро из NinjectWebCommons для разрешения привязки. Текстовый поиск по проекту мне ничего не дает.
[UPD]:
var kernel = new StandardKernel();
kernel.Settings.InjectNonPublic = true;
kernel.Bind<IRepository>().To<Repository>().InRequestScope();
var controller = kernel.Get<BlahBlahBlahController>();
controller.SetFakeControllerContext();
//...
Вот как я должен установить ядро Ninject в тестовом проекте. Вторая часть вопроса для меня до сих пор неясна.