I am completely new to dependency injection. I am using asp mvc and ninject.
I extended a class from ‘DefaultControllerFactory’ and added following ‘AddBindings’ code:
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);
}
In my ‘AccountController’ I inject IUserRepository via contructor:
private IUserRepository userRepository;
public AccountController(IUserRepository userRepository)
{
this.userRepository = userRepository;
}
And here I come to issue. Account controller contains ‘RegisterUser’ action. And user must select with standard parameters (username, firstName etc.) a few additianal parameters like Country and City. How to inject more repository classes in some controller? What is the best strategy for this?
How to use Ninject with ASP.NET MVC
Here you can find complete tutorial how to setup Ninject with ASP.NET MVC