我的基本设置很像这样; http://visualstudiomagazine.com/articles/2011/10/01/wpf-and-inversion-of-control.aspx
WPF 中的 MVVM 设置。我将 UnitOfWork 和 RepositoryFactory 注入(inject)到 ViewModel 中。这对于我迄今为止编写的对话框非常有效......但是我们的应用程序的大部分都在可停靠窗口内(想想 Visual Studio UI)。只要应用程序是开放的,这些都是开放的。
所以我的想法是将工作单元从对话框的生命周期转移到方法调用的生命周期(例如 Button.Click() )。
但是我还没有想出一个好的方法来做这不会破坏我从使用 CaSTLe Windsor 作为 IoC 容器和/或不遵循 DRY 获得的一些好处。
这看起来不错... http://www.codeproject.com/Articles/543810/Dependency-Injection-and-Unit-Of-Work-using-Castle但是我担心 session 被包裹在一个半单例中,并担心我可能会因为删除对 UnitOfWork 的直接访问而在自己的脚下开枪。
有人对此有很好的解决方案吗?上面的代码项目好不好,如果不好,它的缺陷是什么?
最佳答案
简单介绍一下工作单位工厂 (例如 IUnitOfWorkFactory
)接口(interface)并在适当的地方使用它(注入(inject)它等)。
另外,考虑制作 IUnitOfWork
接口(interface)继承自 IDisposable
界面。
关于wpf - 带有 IoC 容器的 WPF 中的 UnitOfWork 生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16325612/