【问题标题】:Ninject dynamic bindingNinject 动态绑定
【发布时间】:2015-10-29 22:25:37
【问题描述】:

我有一个 UserController,它引用了实现业务逻辑的 UserService,我有几个用户角色,我在业务逻辑中有不同的行为,所以我的服务中有很多“if 语句”。

然后我决定创建一个 BaseUserService ,其中我对所有用户都有共同的行为,我为每个角色创建了一个单独的服务,其中为每个角色定义了特定的行为。

在控制器构造函数中,我检查哪个是用户的角色并创建适当的服务类型。但是我想知道是否可以使用 Ninject 依赖注入来使用这种方法,我可以在运行时将用户界面绑定到控制器构造函数中的适当实现吗?例如,如果用户的角色是管理员,则将用户界面绑定到 AdminService... 可以在 Ninject 中完成吗?

【问题讨论】:

    标签: c# asp.net .net dependency-injection ninject


    【解决方案1】:

    您要做的是将 IUserServiceFactory 而不是 UserServce 注入控制器构造函数。然后可以从 Contoller 调用工厂,并根据用户角色,工厂将返回适当的实现。有关工厂模式的更多信息,请参阅here。

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多