如何使用Ninject注入asp.net(mvc2)自定义成员资格提供程序?

AlD*_*Dev 4 asp.net ninject custom-membershipprovider asp.net-mvc-2

好的,所以我几个小时都在研究这个问题.我在这里发现了几个帖子,但实际上没有解决问题.那么,让我再试一次......

我有一个使用Ninject和自定义成员资格提供程序的MVC2应用程序.

如果我尝试使用ctor注入提供程序,我会收到一个错误:'没有为此对象定义无参数构造函数.'

public class MyMembershipProvider : MembershipProvider
{
    IMyRepository _repository;

    public MyMembershipProvider(IMyRepository repository)
    {
        _repository = repository;
    }
Run Code Online (Sandbox Code Playgroud)

我也一直在玩工厂和Initialize(),但一切都空白了.

有什么想法/例子吗?

Ste*_*ven 5

成员资格提供程序模型只能在具有默认构造函数的情况下实例化已配置的提供程序.您可以使用服务定位器模式尝试此操作,而不是使用依赖注入.例:

public class MyMembershipProvider : MembershipProvider
{
    IMyRepository _repository;

    public MyMembershipProvider()
    {
        // This example uses the Common Service Locator as IoC facade, but
        // you can change this to call NInject directly if you wish.
        _repository = ServiceLocator.Current.GetInstance<IMyRepository>;
    }
Run Code Online (Sandbox Code Playgroud)