gpt4 book ai didi

unity-container - 在 Unity 中需要处理?

转载 作者:行者123 更新时间:2023-12-03 10:40:45 26 4
gpt4 key购买 nike

可能是 Unity 初学者的一个问题:在使用 Unity 时,您是否还需要在已注入(inject)的对象上实现 Dispose 方法?或者甚至不需要(所以,由 Unity 自动完成)?这是在 Web 应用程序的上下文中。

最佳答案

实现 IDisposable与Unity无关。当您的类型使用非托管资源(如文件)时,您应该实现该接口(interface),这些资源不能被 CLR 垃圾收集。

团结可以manage the lifetime您的类型和实例。对于这种情况,Unity 提供了不同类型的 LifeTimeManager 来控制实例的生命周期。

Unity 只尊重 IDisposable使用 ContainerControlledLifetimeManager 注册它们时的界面或 HierarchicalLifetimeManager .这意味着当您处理 Unity-Container 时,它也会调用 Dispose在所有实现 IDisposable 的实例上由上面命名的 LifetimeManager 注册的接口(interface)。

当您注册实现 IDisposable 的类型时接口(interface)使用TransientLifetimeManager (您在容器上调用 Resolve 的每种类型都会获得一个新实例),您可以调用 Dispose在实例上。

关于unity-container - 在 Unity 中需要处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581655/

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