开发者

How to inject more classes in some controller using ninject

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开发者_如何学Python()
        {            
            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

private IUserRepository userRepository;
private IAddressRepository addressRepository;

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜