누구나 ninject 초기화 코드의 RegisterServices에서 Membership.Provider를 구성하는 방법을 알고 있습니까? 내 코드에서Ninject, injecting Membership.Provider in Register 서비스 ninject 초기화
:
/// <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);
}
모든 모듈은 kernel.Inject 라인을 제외하고 바인더 제본된다. "이 방법은 응용 프로그램의 사전 시작 초기화 단계에서 호출 할 수 없습니다."라는 오류가 발생합니다.
파일은 표준 nugject.mvc 설치의 NinjectWebCommon입니다. 사용자 지정 멤버 자격 공급자를 만들고 서비스 계층 (SecurityService)을 공급자에 주입하려고합니다.
어떤 도움이 필요합니까?
kernel.Bind<MembershipProvider>().ToMethod(ctx => Membership.Provider);
는 질문에서 접선의 비트,이 블로그 게시물 (http://blog.ploeh.dk/2011/04/27/ProviderIsNotAPattern.aspx)로부터 Mark Seemann (및 의견)에는 제공 업체 및 종속성 주입에 대한 흥미로운 토론이 있습니다. – ngm이것은 중복입니다, 여기에 더 나은 대답이 있습니다 : http://stackoverflow.com/questions/14412279/how-to-configure-ninject-for-mvc4-custom-membership-provide –