gpt4 book ai didi

asp.net-mvc - Ninject 依赖注入(inject) : Read bindings from config?

转载 作者:行者123 更新时间:2023-12-02 04:54:39 25 4
gpt4 key购买 nike

我不熟悉自动依赖项注入(inject)并尝试使用 MVC4 应用程序干净地实现 Ninject。一切正常,但我的强制症想知道应用程序将如何根据 NinjectWebCommon.cs 中的 RegisterServices(IKernel kernel) 方法中的列表绑定(bind)进行扩展。例如,

    /// <summary>
/// Load your modules or register your services here!
/// </summary>
/// <param name="kernel">The kernel.</param>
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IAbstractManagerA>().To<ConcreteManagerA>();
kernel.Bind<IAbstractManagerB>().To<ConcreteManagerB>();
kernel.Bind<IAbstractRepoA>().To<ConcreteRepoA>();
...etc etc could be hundreds
}

有没有更好的方法来处理这个问题?也许每个配对都作为 web.config 设置或其他配置文件?本质上是为依赖注入(inject)注入(inject)依赖 :)

最佳答案

考虑围绕一些定义明确的通用抽象来设计您的应用程序,例如:

  • IRepository<TEntity>隐藏数据库CRUD操作
  • ICommandHandler<TCommand>定义您的系统业务运营/用例 ( example )。
  • IQueryHandler<TQuery, TResult>定义可由业务逻辑使用的自定义查询 (example)。
  • IValidator<T>作为可以验证实体或命令的类的抽象 (example)。

应用这种类型的设计有几个明显的好处:

  1. 它迫使你进入一个干净和SOLID应用程序设计。
  2. 它可以轻松地围绕某个概念的所有实现添加横切关注点(例如,围绕每个业务操作添加事务的装饰器)。
  3. 它使 batch register a whole range 变得容易相关类型。
  4. 在此基础上构建可维护的解决方案变得更加容易,例如 maintenance free WCF services .

关于asp.net-mvc - Ninject 依赖注入(inject) : Read bindings from config?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com