如何将存储库注入到自定义MembershipProvider中?
问题描述:
看来我不能得到这个工作。我做了一个自定义MembershipProvider,我想注入一个存储库,但[Inject]属性不起作用。如何将存储库注入到自定义MembershipProvider中?
public class PyrosphereMembershipProvider : MembershipProvider
{
[Inject]
protected IDepositoireUtilisateur DepositoireUtilisateur { get; set; }
[Inject]
protected IDepositoireProfile DepositoireProfile { get; set; }
...
我认为这是因为这个类是在MVC应用程序运行之前创建的,这导致了实际问题。试图使用membershipprovider的问题比创建自己的系统时遇到了更多问题。
关于我的ninject配置我正在使用App_Start目录方法。我所有的约束都是正确的,看起来和我的约束无关。
任何帮助表示赞赏!
答
ASP.NET提供程序不适用于正确的依赖项注入。他们只有解决方法。
您必须为它们设置绑定并在使用它们之前解析至少一个实例。例如。通过将实例注入Global.asax中,或者必须在首次使用前手动注入实例(kernel.Inject(...)
)。再次最有可能在global.asax应用程序启动方法中。
+0
alrigh im definitivly放弃提供者然后我会让我自己我知道它是如何工作的,所以不会是一个真正的问题。 – Rushino
Your're正确的原因是Ninject没有做你的MembershipProvider类的创建。你可以在事实之后做一个'Kernel.Inject',但真正的答案是在这里为ninject和/或其他DI框架更加努力,与会员提供者的集成是最好的。 –