Я пытаюсь внедрить хранилище в пользовательский поставщик членства с помощью ninject в MVC 3.
В MembershipProvider я пробовал следующее:
[Inject]
public ICustomerRepository _customerRepository{ get; set; }
И
[Inject]
public TUMembershipProvider(ICustomerRepository customerRepository)
{
_customerRepository = customerRepository;
}
В моем модуле ninject я попробовал следующее:
Bind<MembershipProvider>().ToConstant(Membership.Provider);
Ни одна из вышеперечисленных работ.
Когда я использую (в global.asa)
kernel.Inject(Membership.Provider);
вместе с
[Inject]
public ICustomerRepository _customerRepository{ get; set; }
это работает, но у меня нет управления жизненным циклом, и это приведет к ошибке «ISession is open» из NHibernate, потому что ISession - это InRequestScope, а хранилище - нет.