Во-первых, я хочу сказать, что есть масса ответов на SO и поиски в Google, связанные с этим, однако я столкнулся с проблемой, которая мешает этим решениям работать. Ответ здесь кажется таким идти. (kernel.Inject(Roles.Provider);
)
Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь внедрить RoleProvider
Roles.Provider
, он равен нулю, однако мой пользовательский провайдер находится в списке внутри Roles.Providers
. Я думаю, что Ninject слишком рано пытается получить доступ к поставщику ролей.
В моем классе NinjectWebCommon
кажется, что он использует WebActivator
для запуска самого себя. [assembly: WebActivator.PreApplicationStartMethod(typeof(Admin.App_Start.NinjectWebCommon), "Start")]
Похоже, что все статьи, с которыми я столкнулся, используют более старые версии Ninject и выполняют большую часть тяжелой работы в Global.asax Application_Start... Используя мою реализацию, как я могу заставить DI работать для пользовательского поставщика ролей ?
Я использую атрибут [Inject]
в своем пользовательском провайдере.