.net - Unity IOC Buildup vs Resolve?

标签 .net unity-container ioc-container

我想知道在使用 Unity IOC 时何时使用 buildup 以及何时使用 resolve。

我什么时候叫拆解?

谢谢

最佳答案

当您希望 Unity 容器构造实例时使用 Resolve(当您需要它时创建一个新实例或预先存在的单例),注入(inject)其依赖项并将对对象的引用交给您。

当您已经拥有对象的实例并希望容器仅解析和注入(inject)其依赖项时,使用 BuildUp。

Teardown 与 BuildUp 相反。您可以将对象传递给容器的 Teardown 方法以关闭/清理/任何您想要的。现有的容器行为在 Teardown 时没有任何作用,但可以编写扩展来利用这一点。您还可以使您的对象实现 IDisposable,并且容器会在您的对象自行处理时调用 Dispose()。

IMyService service = container.Resolve<MyService>(); // New service or pre-existing singleton

IMyService service = GetMyService(); // Get the instance from some source
container.BuildUp(service); // Inject dependencies
container.Teardown(service); // Clean-up

关于.net - Unity IOC Buildup vs Resolve?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2046408/

相关文章:

c# - 获取当前文件夹路径

.net - 是否可以禁用 UnityContainer 的自动实例化行为?

c# - UnityContainer.BuildUp() - 仅当属性为空时,我可以让它将新实例注入(inject)到属性中吗?

c# - 在 LINQ 中合并记录

c# - 如何遍历组合框值列表并选择其中一个

asp.net-mvc-3 - 自定义成员资格提供程序和统一依赖注入(inject)

c# - Unity 等价于 Ninject 的 Bind.ToMethod of IPrincipal,IIdentity

c# - IOC 容器实际上为我做了什么?

c# - 需要帮助了解 Ninject 如何将 Nhibernate SessionFactory 实例放入 UnitOfWork 中?

c# - 搜索字符串以查找文件名