我有一个通用存储库,它将 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/