Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ninject 如何将存储库注入自定义成员资格提供程序?_Ninject_Custom Membershipprovider - Fatal编程技术网

Ninject 如何将存储库注入自定义成员资格提供程序?

Ninject 如何将存储库注入自定义成员资格提供程序?,ninject,custom-membershipprovider,Ninject,Custom Membershipprovider,看来我没办法让它工作。我创建了一个自定义的MembershipProvider,我想在其中插入一个存储库,但是[inject]属性就是不起作用 public class PyrosphereMembershipProvider : MembershipProvider { [Inject] protected IDepositoireUtilisateur DepositoireUtilisateur { get; set; } [I

看来我没办法让它工作。我创建了一个自定义的MembershipProvider,我想在其中插入一个存储库,但是[inject]属性就是不起作用

  public class PyrosphereMembershipProvider : MembershipProvider
    {
        [Inject]
        protected IDepositoireUtilisateur DepositoireUtilisateur { get; set; }

        [Inject]
        protected IDepositoireProfile DepositoireProfile { get; set; }
...
我认为这是因为这个类是在MVC应用程序运行之前创建的,这导致了实际的问题。我在尝试使用membershipprovider时遇到了比创建自己的系统更大的问题

关于我的ninject配置,我正在使用App_Start directory方法。我所有的装帧都是正确的,我看了看,与我的装帧毫无关系


感谢您的帮助

ASP.NET提供程序不是为正确的依赖项注入而设计的。他们只有变通办法


您必须为它们设置绑定,并在使用它们之前至少解析一个实例。例如,通过将实例注入Global.asax,或者您必须在首次使用(
kernel.Inject(…)
)之前手动注入实例。同样,最有可能使用global.asax应用程序启动方法

您是对的,原因是Ninject没有创建您的MembershipProvider类。你可以做一个
Kernel.Inject
,但真正的答案是在这里仔细看看ninject和/或其他DI框架,与成员资格提供者的集成是最好的。alrigh我明确放弃提供者,然后我会自己做,我知道它是如何工作的,所以这不会是一个真正的问题。