gpt4 book ai didi

caSTLe-windsor - 使用 CaSTLe Windsor 的存储库类的适当生命周期

转载 作者:行者123 更新时间:2023-12-04 08:26:33 25 4
gpt4 key购买 nike

当我开始使用 Windsor 时,我认为 DI 会很简单。现在它让我越来越困惑。

在我看来,存储库是一个具有单例生命周期的类。我应该有一个 FooRepository 实例来在应用程序的生命周期内将 Foos 加载和保存到数据库。

但是,每个存储库都包含对 UnitOfWork 的引用,它执行脏检查、与数据库一起工作等。UnitOfWork 的生命周期为 PerWebRequest - UnitOfWork 是一个单例根本没有意义,因为单例实例可以(例如)同时刷新多个用户 session 所做的更改。

然后我有一个单例 FooRepository 保存对 UnitOfWork 的引用,它在 session 结束时被处理掉!我什至不确定这会对存储库的行为产生什么影响,但这听起来不太好。

谁能用简单的英语(好吧,也许用一些代码)解释在网络应用程序中管理 Repository 和 UnitOfWork 类的生命周期的适当方法?

最佳答案

经验法则是 - 组件不应该依赖于其他会长于它的组件。

换句话说,transient 可以依赖单例或每个网络请求组件,但反之则不行。

我处理 Repository - UoW 场景的方式是我的 UoW 是每个 Web 请求,但存储库是无状态和 transient 的。

关于caSTLe-windsor - 使用 CaSTLe Windsor 的存储库类的适当生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com