2014-10-03 4 views
1

이 userRepository가 Ninject에 생성자가 0 PARAMS을 복용해야합니다 클래스에 객체를 바인딩 전달

public class UserRoleProvider : RoleProvider 
{ 
    private IUserRepository userRepo; 
    public UserRoleProvider(IUserRepository userRepository) 
    { 
     userRepo = userRepository; 
    } 
    ... 
} 

사용 UserRoleProvider 클래스있다 그리고의 Web.config에서 NinjectDependencyResolver 클래스

private void AddBindings() 
    { 
     kernel.Bind<IUserRepository>().To<EFUserRepository>(); 
    } 

바인딩 방법이 있어요, UserRoleProvider를 기본 RoleProvider로 설정했습니다.

<roleManager enabled="true" defaultProvider="UserRoleProvider"> 
     <providers> 
     <clear/> 
     <add name="UserRoleProvider" type="PomocnikPodroznika.WebUI.Infrastructure.Concrete.UserRoleProvider"/> 
     </providers> 
    </roleManager> 

UserRoleProvider에는 0 개의 인수 (그리고 설정 파일이 기대하는)를 사용하는 생성자가 없다고 말하는 오류가 발생합니다. 어떤 방법이 UserRoleProvider 클래스에 생성자를 통해 전달하지 않고 EFUserRepository 개체 (ninject 사용)를 전달할 수 있습니까?

+0

[Ninject.Web.Common] (https://www.nuget.org/packages/Ninject.Web.Common/) 패키지를 사용해 보셨습니까? 그런 다음 생성자 인수 (원래 디자인)로 유형을 인스턴스화 할 수 있어야한다고 생각합니다. – BatteryBackupUnit

답변

0

문제점에 대한 해결책을 찾았습니다.

private IUserRepository userRepo; 
     public UserRoleProvider() 
     { 
      userRepo = DependencyResolver.Current.GetService<IUserRepository>(); 
     } 
관련 문제