Asp.net Ninject,在Ninject初始化的RegisterServices中注入Membership.Provider
有人知道如何在ninject初始化代码的RegisterServices中配置Membership.Provider吗 在我的代码中:Asp.net Ninject,在Ninject初始化的RegisterServices中注入Membership.Provider,asp.net,asp.net-mvc-3,ninject.web.mvc,Asp.net,Asp.net Mvc 3,Ninject.web.mvc,有人知道如何在ninject初始化代码的RegisterServices中配置Membership.Provider吗 在我的代码中: /// <summary> /// Load your modules or register your services here! /// </summary> /// <param name="kernel">The kernel.</param> private st
/// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
// Put additional bindings here
kernel.Bind<IDatabaseFactory>().To<DatabaseFactory>();
kernel.Bind<IUnitOfWork>().To<UnitOfWork>();
kernel.Bind<IUserRepository>().To<UserRepository>();
kernel.Bind<IRoleRepository>().To<RoleRepository>();
kernel.Bind<ISecurityService>().To<SecurityService>();
kernel.Inject(Membership.Provider);
kernel.Inject(Roles.Provider);
}
//
///在这里加载您的模块或注册您的服务!
///
///内核。
私有静态无效注册服务(IKernel内核)
{
//在此处添加其他绑定
kernel.Bind().To();
kernel.Bind().To();
kernel.Bind().To();
kernel.Bind().To();
kernel.Bind().To();
kernel.Inject(Membership.Provider);
kernel.Inject(Roles.Provider);
}
除kernel.Inject行外,所有模块都绑定在一起。我收到错误:“在应用程序的预启动初始化阶段无法调用此方法”
该文件是标准nuget ninject.mvc安装的NinjectWebCommon。
我正在尝试创建一个自定义成员资格提供程序,并在提供程序中注入服务层(SecurityService)
有什么帮助吗?同样的问题让我头痛不已,我终于找到了一个相对干净的解决方案 基本方法是:
[Inject]
属性RegisterServices()
方法中最后2个inject
语句替换为提供程序和新HttpModule的绑定
kernel.Bind().ToMethod(ctx=>Membership.Provider)代码>
kernel.Bind().To()代码>
虽然这与您的问题有点相切,但Mark Seemann的这篇博文()(以及评论)对提供者和依赖注入进行了一些有趣的讨论。这是重复的,这里有一个更好的答案:这与自定义成员资格提供者一起工作,但是,如果我采用您提到的方法,那么如何将自定义RoleProvider作为自定义RoleProvider中的依赖项使用的任何想法都不会被注入。