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

WPF 中的 MVVM 设置。我正在向 ViewModel 中注入(inject)一个 UnitOfWork 和一个 RepositoryFactory。这对于我到目前为止编写的对话框非常有用......但是我们应用程序的大部分内容都在可停靠窗口内(想想 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 的直接访问而在脚中开枪。

任何人都有一个很好的解决方案?上面的代码项目是否好,如果不是,它的缺陷是什么?

最佳答案

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

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

关于wpf - 带有 IoC 容器的 WPF 中的 UnitOfWork 生命周期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16325612/

10-12 23:30