2011-09-04 7 views
0

나는 의존성 주입을 완전히 처음 접했습니다. 나는 asp mvc 및 ninject 사용하고 있습니다. 나는 'DefaultControllerFactory'에서 클래스를 확장하고 다음 'AddBindings'코드 추가 : 내 'AccountController'내가 생성자를 통해 IUserRepository 주입에ninject를 사용하여 일부 컨트롤러에 더 많은 클래스를 주입하는 방법

private void AddBindings() 
     {    
      ninjectKernel.Bind<ICitiesRepository>().To<CitiesRepository>().WithConstructorArgument(
       "connectionString", ConfigurationManager.ConnectionStrings["cstr"].ConnectionString); 

      ninjectKernel.Bind<ICountriesRepository>().To<CountriesRepository>().WithConstructorArgument(
       "connectionString", ConfigurationManager.ConnectionStrings["cstr"].ConnectionString); 

      ninjectKernel.Bind<IUserRepository>().To<UserRepository>().WithConstructorArgument(
       "connectionString", ConfigurationManager.ConnectionStrings["cstr"].ConnectionString); 

     } 

을 :

private IUserRepository userRepository; 

     public AccountController(IUserRepository userRepository) 
     { 
      this.userRepository = userRepository; 
     } 

그리고 여기가 발행되어 있습니다. 계정 컨트롤러에 'RegisterUser'작업이 포함되어 있습니다. 사용자는 표준 매개 변수 (사용자 이름, 이름 등)로 국가 및 도시와 같은 몇 가지 추가 매개 변수를 선택해야합니다. 일부 컨트롤러에 더 많은 저장소 클래스를 주입하는 방법? 이것에 가장 적합한 전략은 무엇입니까? 설치하는 방법

답변

1

How to use Ninject with ASP.NET MVC

다음은 완전한 튜토리얼을 찾을 수 있습니다 Ninject에와 방법을 설정해서 Ninject를에 대한 튜토리얼 ASP.NET MVC

private IUserRepository userRepository; 
private IAddressRepository addressRepository; 

     public AccountController(IUserRepository userRepository, IAddressRepository addressRepository) 
     { 
      this.userRepository = userRepository; 
      this.addressRepository = addressRepository; 
     } 
+0

. 하지만 설정 한 컨트롤러에 더 많은 종속성 클래스를 삽입하는 방법을 모르겠습니다. – 1110

+0

필요한만큼 생성자에서 많은 리포지토리를 사용할 수 있습니다. Chec \ k 샘플. – Samich

관련 문제