![]() |
1
4
一般来说, 摘要 依赖关系 不应从IDisposable派生 因为它是一个 泄漏提取 . 依赖项可能包含也可能不包含非托管资源依赖项 混凝土 实施。在任何情况下, 容器应管理生存期 ,所以这不是由消费者决定的-它不知道依赖关系的生命周期:它可以与其他消费者共享,在这种情况下 破坏过早处置 其中。 也就是说,a(linq to sql?)DataContext代表另一个问题,因为它已经实现了IDisposable,并且您不能很好地更改它,因为它是在BCL中定义的。 您可以为存储库正确实现IDisposable,但这意味着您必须 匹配寿命 用于所有存储库和数据上下文。 另一种选择是简单地忽略你持有的是一次性资源,但是如果你这样做,你将不得不 绝对肯定 这种统一在适当的时间正确地处理数据上下文——但是由于您计划使用单例生存期,这不应该是一个问题。 |
![]() |
2
3
如果我是你,我也会 UnitOfWork 或者让IOC容器管理数据上下文的生存期。 例如,structuremap有一个httpContextScoped选项,因此您可以这样注册DataContext:
|
![]() |
3
0
听起来是这样的-从你所说的,所有存储库都将共享相同的
什么创造了
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |