wpf - 带有 IoC 容器的 WPF 中的 UnitOfWork 生命周期

标签 wpf mvvm castle-windsor ioc-container unit-of-work

我的基本设置很像这样; 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/

相关文章:

wpf - 学习 WPF 和 MVVM - 从头开始​​学习的最佳方法

.net - 温莎城堡 : Clearing the container

c# - 如何将文件夹中的所有 PNG 转换为 JPG 以制作视频?

c# - wpf mvvm 在数据网格中显示可观察集合

c# - 如何使用 MVVM 在 WP7 中聚焦文本框?

asp.net-mvc - 在哪里可以找到 mvc 2 的 Windsor Controller 工厂?没有 mvccontrib.caSTLe.dll o_O

caSTLe-windsor - 如何将依赖项传递给实现 IEventProcessor(Event Hub) 的类

wpf - 如何动态禁用按钮

.net - 桌面应用程序中的 WPF 与 Windows 窗体

WPF:沿路径查找元素