Unity IOC Builddup vs Resolve?

时间:2010-01-12 02:53:46

标签: .net unity-container ioc-container

当我使用Unity IOC时,我想知道何时使用builddup以及何时使用resolve。

我什么时候打电话拆机?

由于

1 个答案:

答案 0 :(得分:21)

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

当您已经拥有该对象的实例并希望容器只解析并注入其依赖项时,就会使用BuildUp。

拆解与BuildUp相反。您可以将对象传递给容器的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