Я настраиваю CustomRoleProver как:
public class CustomRoleProvider : RoleProvider
{
private readonly IRepository<User> _repository;
public CustomRoleProvider(IRepository<User> repository)
{
_repository = repository;
}
...
В моем Global.asax.cs у меня есть:
//Create Ninject DI kernel
var kernel = new StandardKernel();
kernel.Bind<IRepository<User>>().To<Repository<User>>();
//Tell ASP.NET MVC 3 to use our Ninject DI Container
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
Когда я пытаюсь запустить свой код, я получаю:
Ошибка конфигурации Описание: во время обработки файла конфигурации, необходимого для обслуживания этого запроса, произошла ошибка.Пожалуйста, просмотрите подробности конкретной ошибки ниже и измените файл конфигурации соответствующим образом.
Сообщение об ошибке синтаксического анализатора: для этого объекта не определен конструктор без параметров.
Ошибка источника:
Строка 64:Строка 65: Строка 66: Строка 67: Строка 68:
Так что, возможно, у меня совершенно неправильное понимание DI и ниндзя.Я думал, что когда он попытается создать экземпляр CustomRoleProvider, он создаст хранилище пользователя и передаст его конструктору, не пытающемуся использовать безпараметрический.
Я правильно понимаю или мои настройки просто неверны?
Я нахожу это странным, потому что DI, кажется, в основном работает для контроллеров.