c# - Ninject基类和继承类绑定(bind)到同一个实例

标签 c# entity-framework ninject ninject.web.mvc

我有一个通用存储库,它将 DbContext 作为构造函数参数。要注入(inject)它,我的绑定(bind)如下所示:

Bind<DbContext>().To<MyApplicationsContext>().InRequestScope();

我还有自定义存储库,它们直接将 MyApplicationContext 作为构造函数参数。如何编写绑定(bind),以便无论存储库请求基类 DbContext 还是继承类 MyApplicationContext,它都会获得相同的实例 InRequestScope?

最佳答案

您需要使用的是 Bind<>() 的重载方法。

在您的情况下,您的代码将是:

Bind<DbContext, MyApplicationsContext>().To<MyApplicationsContext>().InRequestScope();

如果您想使用开放泛型或需要使用 System.Type 进行绑定(bind)你可以使用这个重载

Bind(typeof(DbContext), typeof(MyApplicationsContext))
    .To(typeof(MyApplicationsContext))
    .InRequestScope();

关于c# - Ninject基类和继承类绑定(bind)到同一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33038332/

相关文章:

c# - 用于 web api 的类似计时器的功能

c# - Entity Framework DbContext 实例 DataReader 已经打开

c# - 如何使用 .NET Core 配置框架将连接字符串放置到 json 配置文件中?

asp.net-mvc - 使用 RavenDB session 将 Ninject 问题绑定(bind)到 MVC3 中的常量值

c# - 使用 C# 和 WPF 在代码中绘制线条

c# - ToolStripDropDownButton 右对齐显示在应用程序窗口之外

c# - EntityFramework.Utilities 插入带有实体引用的所有记录

c# - 传递 Ninject 内核是一个好习惯吗?

c# - Dispose() 和 Ninject 指南

c# - IE6 : window. onresize 在 IIS 上工作,在 asp.net 开发服务器上崩溃