我正在尝试使用 MVC 3 中的 ninject 将存储库注入自定义成员资格提供程序。
在 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; }
它可以工作,但是我没有生命周期管理,这将导致 NHibernate 出现“ISession 已打开”错误,因为 ISession 是 InRequestScope 而存储库不是。