13

我的基本设置很像这样;http://visualstudiomagazine.com/articles/2011/10/01/wpf-and-inversion-of-control.aspx

WPF 中的 MVVM 设置。我将 UnitOfWork 和 RepositoryFactory 注入到 ViewModel 中。这对于我迄今为止编写的对话框非常有效......但是我们的应用程序的大部分都在可停靠窗口内(想想 Visual Studio UI)。只要应用程序是开放的,这些都是开放的。

所以我的想法是将工作单元从对话框的生命周期转移到方法调用的生命周期(例如 Button.Click() )。

但是我还没有想出一个好的方法来做这不会破坏我从使用 Castle Windsor 作为 IoC 容器和/或不遵循 DRY 获得的一些好处。

这似乎相当不错...... http://www.codeproject.com/Articles/543810/Dependency-Injection-and-Unit-Of-Work-using-Castle但我担心会话被包裹在一个半单例和担心我可能会因为删除对 UnitOfWork 的直接访问而自取其辱。

有人对此有很好的解决方案吗?上面的代码项目好不好,如果不好,它的缺陷是什么?

4

1 回答 1

3

只需引入 Unit Of Work Factory(例如,IUnitOfWorkFactory)接口并在适当的地方使用它(注入它等)。

另外,考虑使IUnitOfWork接口继承自IDisposable接口。

于 2015-01-28T20:25:27.357 回答