【问题标题】:How to inject more classes in some controller using ninject如何使用ninject在某些控制器中注入更多类
【发布时间】:2023-04-10 19:42:01
【问题描述】:

我对依赖注入完全陌生。我正在使用 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”操作。用户必须使用标准参数(用户名、名字等)选择一些附加参数,如国家和城市。如何在某些控制器中注入更多存储库类?最好的策略是什么?

【问题讨论】:

    标签: asp.net-mvc ioc-container ninject


    【解决方案1】:

    How to use Ninject with ASP.NET MVC

    在这里您可以找到如何使用 ASP.NET MVC 设置 Ninject 的完整教程

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

    【讨论】:

    • 这是关于如何设置ninject的教程。但是我设置了我就是不知道如何在一个控制器中插入更多的依赖类?
    • 您可以根据需要在构造函数中使用尽可能多的存储库。检查\k样本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多