Ninject基础class和继承class绑定到同一个实例
Ninject base class and inheriting class bind to the same instance
我有一个将 DbContext 作为构造函数参数的通用存储库。要注入它,我的绑定看起来是这样的:
Bind<DbContext>().To<MyApplicationsContext>().InRequestScope();
我也有自定义存储库,它直接将 MyApplicationContext 作为构造函数参数。我如何编写这样的绑定,无论存储库请求基础 class DbContext 还是继承 class MyApplicationContext,它都会获得相同的实例 InRequestScope?
您要使用的是 Bind<>()
方法的重载。
在您的情况下,您的代码将是:
Bind<DbContext, MyApplicationsContext>().To<MyApplicationsContext>().InRequestScope();
如果您想使用开放泛型或需要使用 System.Type
进行绑定,您可以使用此重载
Bind(typeof(DbContext), typeof(MyApplicationsContext))
.To(typeof(MyApplicationsContext))
.InRequestScope();
我有一个将 DbContext 作为构造函数参数的通用存储库。要注入它,我的绑定看起来是这样的:
Bind<DbContext>().To<MyApplicationsContext>().InRequestScope();
我也有自定义存储库,它直接将 MyApplicationContext 作为构造函数参数。我如何编写这样的绑定,无论存储库请求基础 class DbContext 还是继承 class MyApplicationContext,它都会获得相同的实例 InRequestScope?
您要使用的是 Bind<>()
方法的重载。
在您的情况下,您的代码将是:
Bind<DbContext, MyApplicationsContext>().To<MyApplicationsContext>().InRequestScope();
如果您想使用开放泛型或需要使用 System.Type
进行绑定,您可以使用此重载
Bind(typeof(DbContext), typeof(MyApplicationsContext))
.To(typeof(MyApplicationsContext))
.InRequestScope();