Как добавить больше классов в некоторый контроллер, используя ninject - PullRequest
0 голосов
/ 04 сентября 2011

Я совершенно новичок в внедрении зависимостей. Я использую asp mvc и ninject. Я расширил класс из DefaultControllerFactory и добавил следующий код AddBindings:

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);

        }

В моем AccountController я добавляю IUserRepository через конструктор:

private IUserRepository userRepository;

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

И вот я подхожу к вопросу. Контроллер аккаунта содержит действие «RegisterUser». И пользователь должен выбрать со стандартными параметрами (имя пользователя, имя и т. Д.) Несколько дополнительных параметров, таких как Страна и Город. Как добавить больше классов репозитория в некоторый контроллер? Какова лучшая стратегия для этого?

1 Ответ

1 голос
/ 04 сентября 2011

Как использовать Ninject с ASP.NET MVC

Здесь вы можете найти полное руководство по настройке Ninject с ASP.NET MVC

private IUserRepository userRepository;
private IAddressRepository addressRepository;

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