c# - 根据 Controller 请求绑定(bind) Ninject

标签 c# asp.net-mvc binding ninject

我正在学习 Ninject 以及如何在 MVC 情况下实现它。我试图找出设置以下场景的最佳方法/实践。

我有一个团队对象,它将在整个应用程序中重复使用,我需要做的是让 Ninject 根据请求的来源自动解析绑定(bind)。

在我的 NinjectController 工厂中,我目前有一个将团队解析到其适当存储库的服务

Bind<ITeamRepository>().To<SwimTeamRepository>() // non-space characters to enable edit submission

但是如果请求来自 SoccerController,我需要绑定(bind):

Bind<ITeamRepository>().To<SoccerTeamRepository>()

这是否应该有条件地完成,设置单独的服务?这里最好的方法是什么?或者我在这里完全偏离了轨道......

最佳答案

听起来您可能想要使用 contextual binding .如果这没有帮助,也许您可​​以重新表述问题,以便我更好地了解您正在寻找的内容。

这在编辑后更有意义。我不完全确定你的应用程序是如何构建的,但我可能会将 ITeamRepository 传递给 Controller ​​,构造函数看起来像这样。

public SoccerController(ITeamRepository repository)
{
    _repository = repository;
}

public SwimmingController(ITeamRepository repository)
{
    _repository = repository;
}

然后是绑定(bind):

Bind<ITeamRespository>().To<SoccerRepository>().WhenInjectedInto(typeof(SoccerController));
Bind<ITeamRespository>().To<SwimmingRepository>().WhenInjectedInto(typeof(SwimmingController));

关于c# - 根据 Controller 请求绑定(bind) Ninject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5915256/

相关文章:

.net - .net core mvc 中 session 超时时如何重定向

c# - Xamarin.Forms 如何将多个页面的 BindingContext 设置为同一个 ViewModel?

c# - MVC linq to sql 求和

javascript - Change Event 与 React 和 Typescript 混合在一起

wpf - 如何传递整数作为 ConverterParameter?

c# - 即时创建我的程序集的签名副本

c# - System.Web.HttpContext.Current.Cache 信息

c# - 如何强制在 chrome android 上内联打开 pdf 文档?

c# - 如何判断一个类是否实现了特定的接口(interface)

asp.net - 当模型无效时,返回 View 内的局部 View ,并显示错误消息