我正在将一个存储库注入一个类中,一旦我注入了存储库,我就将我的上下文分配给每个存储库,这样我就有了我的工作单元。
我想弄清楚的是,有没有办法在我注入时自动将我的工作单元分配给每个存储库,以便开发人员在设置代码时不必考虑这一点。我已经在我的基类中配置了我的工作单元,开发人员将继承该工作单元。
我能做点什么吗?
Bind<I>().To<S>().WhenInjectedInto<IBaseClass>( i,b => { i.UnitOfWork = b.UnitOfWork });
但不必每次都重复这种模式?
[UPDATE] 我正在研究如何弄清楚Ninject是否正在注射以及 https://github.com/ninject/ninject.extensions.interception
我正试图通过测试来看看这是否远离基础。有什么建议吗?
答案 0 :(得分:1)
我认为更好的方法是使用构造函数注入将上下文注入存储库。在Web项目中,您可以使用InRequestScope进行上下文绑定。对于WPF / WinForms / Console应用程序,请查看Ninject.Extensions.NamedScope。您可以定义单个上下文用于IBaseClass
的所有依赖项。